我有一個問題如何在where/having子句中使用「別名」列。我知道有一個相關的話題有一些問題。但我搜索谷歌和stackoverfolw並沒有找到解決方案。mysql使用計算列在哪裏/有
,所以我希望在這種方式幫助..
下面的語句適用:
SELECT PHRASE,COUNT(*) AS A
FROM my_statistics
WHERE TIMESTAMP>NOW()-INTERVAL 7 DAY
GROUP BY PHRASE ORDER BY A DESC
LIMIT 16;
PHRASE
和TIMESTAMP
是在表列。 該代碼選擇前16個用戶在過去7天插入的PHRASES。 還有一列USER,所以我現在喜歡選擇由多個用戶插入的前16個詞組。 所以我想這:
SELECT PHRASE,COUNT(*) AS A, COUNT(DISTINCT(USER)) AS B
FROM my_statistics
WHERE TIMESTAMP>NOW()-INTERVAL 7 DAY
AND B>1
GROUP BY PHRASE ORDER BY A DESC
LIMIT 16;
論計算器我喜歡的信息的其他問題,我不得不使用HAVING
SELECT PHRASE,COUNT(*) AS A, COUNT(DISTINCT(USER)) AS B
FROM my_statistics
WHERE TIMESTAMP>NOW()-INTERVAL 7 DAY
GROUP BY PHRASE ORDER BY A DESC
HAVING B>1
LIMIT 16;
但這返回一個錯誤:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'HAVING B>1 LIMIT 16' at line 5
我不知道,正確的語法可能如何。 希望在這裏得到任何幫助。 謝謝!
重複:http://stackoverflow.com/questions/942571/using-column-alias-in-where-clause-of-mysql-query-produces-an-error – Sammaye
@Sammaye讀取HTTP:/ /stackoverflow.com/questions/942571/using-column-alias-in-where-clause-of-mysql-query-produces-an-error ...是不是男人,這是不可能的? –
別名colums不支持,是的;根據文檔WHERE – Sammaye