我希望有人可以用mysql语句来帮助我。最后我需要这样的方式,例如:(稍后将对json进行编码)。
{"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获取两个值?我的大脑无法建立联系。
数据库屏幕:
答案 0 :(得分: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' ;