从同一列中选择多个值;一条sql语句

bra*_*dev 7 mysql select

我希望从数据库中返回用户列表。数据库中有数百个用户。每个用户都有自己唯一的 user_id。我尝试返回的所有值都位于同一列 (meta_value) 中。

数据库结构如下:

id | user_id | meta_key | meta_value
Run Code Online (Sandbox Code Playgroud)

样本数据如下:

1 | 3434 | 名字| 布兰登
2 | 3434 | 姓氏 | 约翰逊
3 | 3434 | street_add | 123主
4 | 3434 | 城市 | 海洋海滩
5 | 3434 | 状态 | 德克萨斯州

我试图在一个 sql 语句中返回名字、姓氏、street_add、城市和州。

我希望输出看起来像:

Brandon, Johnson, 123 Main, Ocean Beach, Texas 
Run Code Online (Sandbox Code Playgroud)

小智 9

只需将 GROUP_CONCAT 与 WHERE 条件一起使用

SELECT user_id,GROUP_CONCAT(meta_value ORDER BY id) 
FROM t 
WHERE meta_key  IN('first_name','last_name','street_add','city','state') 
GROUP BY user_id
Run Code Online (Sandbox Code Playgroud)