[英]How to display multiple values of row in php?
我的數據庫中有兩個表:
人
user_id | user_name | email |
1 Jack ...
2 Annie ...
favoriteColors
user_id | color_name |
1 black
1 green
2 blue
如何通過user_name顯示所有喜歡的顏色? 如何在獲取時拆分這些多個值?
顯示示例:傑克:黑色,綠色| 安妮:藍色
我的SQL是這樣的:
SELECT user_name, GROUP_CONCAT(color_name SEPARATOR ', ')
FROM Persons
LEFT JOIN favoriteColors ON Persons.user_id = favoriteColors.user_id
GROUP BY Persons.user_id
LIMIT {$limit} OFFSET {$offset}
( $limit
和$offset
由ajax發送)
為此,您可以使用以下聚合函數
https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_group-concat https://dev.mysql.com/doc/refman/8.0/en/group-by -functions.html#function_json-arrayagg https://dev.mysql.com/doc/refman/8.0/zh-CN/group-by-functions.html#function_json-objectagg
SELECT p.user_id, GROUP_CONCAT(DISTINCT p.user_name) name, JSON_ARRAYAGG(f.color_name) colors
FROM Persons p
LEFT JOIN favoriteColors f ON p.user_id = f.user_id
WHERE p.user_name = {$username}
GROUP BY p.user_id
LIMIT {$limit} OFFSET {$offset}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.