我有這樣的查詢:MySQL的問題與具有
SELECT price FROM orders WHERE user_id = 10 HAVING count(*) > 1
它的工作原理,但始終只返回一行。我究竟做錯了什麼?
我有這樣的查詢:MySQL的問題與具有
SELECT price FROM orders WHERE user_id = 10 HAVING count(*) > 1
它的工作原理,但始終只返回一行。我究竟做錯了什麼?
因爲HAVING
與GROUP BY
子句看到工作description這裏
如上面所提到的評論: -
我需要讓所有的訂單(價格)特定用戶取得
你不需要使用HAVING
你可以簡單地這樣做:
SELECT price FROM orders WHERE user_id = 10
HAVING
是GROUP BY
的擴展。它不能單獨使用。文檔here
您可以使用沒有分組數據具有例如:
SELECT price FROM orders WHERE user_id = 10 HAVING price > 10
但是如果你使用分組數據,如數量,金額等,你應該增加group by
:
SELECT sum(price) FROM orders WHERE user_id = 1 group by user_id HAVING count(*) > 1;
價格> 10或總和(價格)不是我所需要的。只需要在一列中獲得所有價格,那麼我可以得到它們的一個排列 – artnikpro
僅顯示某個ID多次出現的記錄(從This Thread
SELECT * FROM table WHERE ID IN (SELECT ID FROM table GROUP BY ID HAVING COUNT(*) > 1)
在你的情況下,你想顯示某個ID的訂單價格。首先我們選擇一個user_id並限制「多次購買」條件。 然後我們注入到這個正常要求
SELECT prices FROM orders
WHERE user_id = 10
AND user_id IN
(SELECT user_id FROM orders GROUP BY user_id HAVING COUNT(*) > 1);
這應該工作
函數COUNT(*)始終將返回僅1記錄。考慮一下。 – elvenbyte
您能否讓我們知道您想使用此查詢來實現什麼目標? – Roopendra
這個查詢沒有任何意義,對最終目標的解釋會非常有幫助。 –