Mysql查询同一个id的多个值

时间:2016-10-22 17:12:16

标签: php mysql

我希望有人可以用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获取两个值?我的大脑无法建立联系。

数据库屏幕:

enter image description here

1 个答案:

答案 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' ;