2016-10-22 81 views
1

我希望有人可以幫助我一個mysql語句。最後我需要這樣的例子:(將被json編碼)。Mysql查詢多個值爲相同的ID

{"meta_value": "Breitensteinstr 82031"} //street and plz

{"meta_value": "Danziger Str 65307"} //street and plz

{"meta_value": "71032"} //no street on this one

我可以得到一個值做

SELECT meta_value FROM `stroma_commentmeta` WHERE meta_key = 'plz' or meta_key = 'street'; 

但現在我卡住了。

如何在同一個表中獲得同一個comment_id的兩個值?我的大腦無法獲得連接。

屏幕的DB:

enter image description here

+0

的'comment_id'添加到'WHERE'條款與'和'和使用子查詢。 –

+0

你的問題沒有意義。您想要的示例輸出只顯示包含鍵的meta_value鍵。但是你已經知道鑰匙了..我確定這是一個錯誤,但是在想要幫助時,它有助於正確地解決問題。 –

+0

你也從未提及過「哪個」id;你有2列承載前綴。你在下面有一個答案,問他們你是不是會迴應評論,或者你只是在某處「起飛」。我已經告訴過你該怎麼做。 –

回答

0
SELECT group_concat( 
     meta_value 
     ORDER BY 
     meta_key DESC 
     SEPARATOR " " ) as meta_value 
    FROM `stroma_commentmeta` 
    WHERE meta_key = 'plz' or meta_key = 'street' 
    GROUP BY comment_id ; 

這帶有一定的侷限性:

http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat

或者只是加入他們在一起......

SELECT straight_join concat(s.meta_value, " " , p.meta_value ) as meta_value 
FROM `stroma_commentmeta` p 
JOIN `stroma_commentmeta` s on s.comment_id=p.comment_id and s.meta_key = 'street' 
    WHERE p.meta_key = 'plz' ; 
+0

它的工作原理!非常感謝! 現在我必須明白它... – Timo

+0

很高興它hepled,你用哪一個? ..第二個應該更快,第一個是炫耀的東西;)和學習新的mysql功能 –

+0

我用第一個,第二個甚至沒有,當我嘗試它。我嫉妒你們在幾分鐘內用心去做這些sql查詢。再次感謝。 – Timo

相關問題