MySQL如何在表别名字段中调用函数?报错FUNCTION t1.YEAR不存在
问题分析与解决
你的错误出在给内置SQL函数YEAR加了表别名前缀。YEAR是数据库的全局内置函数,不属于某个表,不能用t1.来修饰它——数据库会误认为你要调用t1表的自定义YEAR函数,但这个函数根本不存在,所以抛出了报错。
正确的写法是把表别名加在函数的参数(也就是字段)上,明确告诉函数要处理t1表的time_in字段,修改后的SQL语句如下:
SELECT t1.item, t1.quantity, t1.time_in, YEAR(t1.time_in) AS year FROM rec AS t1
如果后续要做自连接,只需要在FROM子句中再次引入表并设置新别名(比如t2),然后在WHERE或JOIN条件中关联两个表即可,函数的用法保持不变。
内容的提问来源于stack exchange,提问作者Rykushin
相关产品推荐
相关产品推荐

