2012-03-05 79 views
3

this is image of user feedback and 未知列「created_day」在「where子句」

SELECT *,DAYNAME(created_on) AS created_day FROM users_feedback WHERE created_day = 'wednesday' 

當我執行上面的查詢它產生像下面

Error Code : 1054 
Unknown column 'created_day' in 'where clause' 

Execution Time : 00:00:00:000 
Transfer Time : 00:00:00:000 
Total Time  : 00:00:00:000 

回答

2

變化where子句

DAYNAME(created_on) = 'wednesday' 

一個不能where子句中使用別名。

1

你覺得這個怎麼樣的錯誤?

SELECT *,DAYNAME(created_on) AS created_day 
FROM users_feedback 
WHERE DAYNAME(created_on) = 'wednesday' 
+0

這是一個答案,或相關的問題? – halfer 2016-12-18 01:08:42

6

不能在WHERE子句中使用來自SELECT的別名。

… WHERE DAYNAME(created_on) = 'wednesday' 

應該解決您的問題。

+0

和更詳細的解釋(無恥的自我廣告):[在where子句中使用表達式列表](http://stackoverflow.com/questions/6545664/using-case-expression-column-in-where-clause/6545685# 6545685) – 2012-03-05 12:02:07

+0

Thankyou分享 – 2012-03-05 12:03:12

+0

你能否解釋爲什麼...... – 2012-03-05 12:13:06

0
SELECT *,DAYNAME(created_on) AS created_day 
FROM users_feedback 
WHERE created_on= 'wednesday' 

Нou不得不提的where子句,其中值'wednesday'存在於實際的字段名,希望這樣上面的查詢將工作

+0

星期三已經存在於我的表中使用別名created_on – 2012-03-05 12:02:05

1
SELECT *,DAYNAME(created_on) AS created_day 
FROM users_feedback 
WHERE DAYNAME(created_on) = 'wednesday 

如果將where子句中使用別名,它會帶來性能問題,有時如果你以錯誤的方式使用它,它會給你錯誤的方式。

所以最好的方法是在需要時使用實際的列。

希望這會有所幫助。