這裏是我的表架構MySQL的組記錄
在上面的測試表我的user_by和message_type只有當message_type =「希望將我的記錄push_message「。
我想實現它沒有任何子查詢,建議請。
我想這
SELECT * FROM `test` group by (CASE WHEN message_type = 'push_message' THEN user_by ELSE id END);
但在mysql中拋出一個錯誤。
這裏是我的表架構MySQL的組記錄
在上面的測試表我的user_by和message_type只有當message_type =「希望將我的記錄push_message「。
我想實現它沒有任何子查詢,建議請。
我想這
SELECT * FROM `test` group by (CASE WHEN message_type = 'push_message' THEN user_by ELSE id END);
但在mysql中拋出一個錯誤。
嗨,謝謝你的回答。經過一些更多的研究,我得到了正確的答案。
SELECT id,user_id, user_by,message_type FROM test group by
if(message_type = 'push_message',concat(user_by,message_type),id);
這裏是GROUP_CONCAT的簡單的例子,你可能會得到你想要的輸出後,運行該/執行此。這個例子還有一個分隔符',',所以你可以快速理解這些事情。
GROUP_CONCAT函數返回一個字符串結果,其中包含組合的非空值。如果沒有非NULL值
SELECT id, user_id,
GROUP_CONCAT(DISTINCT user_by ORDER BY user_by DESC SEPARATOR ', ') as user_by
FROM test
WHERE message_type = 'push_message'
GROUP BY user_by;
這可能會幫助你,如果沒有,那麼請讓我知道,做一個小提琴瞭解什麼實際發生,它返回NULL!
如果您需要保留其他字段,請爲所有這些做GROUP_CONCAT,否則其他數據將從輸出表中刪除。
這沒有幫助。我編輯了這個問題,讓你清楚我想要的東西。告訴我你是否想要其他東西。 –
你可以請[[sqlfiddle]](http://sqlfiddle.com/) –
如果你通過你的user_by和message_type進行分組,那麼你的一些匹配字段將會消失。所以你真的需要這樣做,否則失去這些領域。 –
請製作[sqlfiddle](http://sqlfiddle.com/),以便我們能夠幫助您。 –
你有什麼嘗試?你知道如何進行查詢,但它不起作用嗎?正如@FrayneKonok建議的,你應該提供一個例子。 – Cynical