希望有人能帮我做一个mysql语句。最后我需要这种方式例如:(稍后将进行 json 编码)。
{"meta_value": "Breitensteinstr 82031"}//street and plz
{"meta_value": "Danziger Str 65307"}//street and plz
{"meta_value": "71032"}//这条路上没有街道
我可以通过做得到单个值
SELECT meta_value FROM `stroma_commentmeta` WHERE meta_key = 'plz' or meta_key = 'street';
但现在我卡住了。
如何在同一个表中获取同一个 comment_id 的两个值?我的大脑无法连接。
数据库的屏幕:
最佳答案
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 ;
这有一些限制:
- meta_key 和 comment_id 应该是唯一的
- 长度(默认)限制为 1024 个字符 ( http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len )
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' ;
关于php - Mysql查询同一个id的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40194854/