簡體   English   中英

如何在php中顯示行的多個值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM