gpt4 book ai didi

mysql - 如何从 SQL 子查询返回数组?

转载 作者:行者123 更新时间:2023-11-29 15:55:07 26 4
gpt4 key购买 nike

我正在尝试从我的数据库中查询人员姓名及其所有 friend 的列表。我需要他们的 friend 列表位于与他们的行相邻的数组中,以便进行格式化。

这是我的查询:

$sql = "SELECT CONCAT(r.first_name, ' ', r.last_name) as name, 
( SELECT CONCAT(first_name, ' ', last_name) as friend_name
FROM friend_list WHERE friend = r.id) as friends
FROM friend_list r";

因为人们有多个 friend ,所以我需要它为每个人返回一组 friend 。我该怎么做?

最佳答案

(扩展@GordonLinoff 的评论)

没有办法直接检索数组。您可以做的是使用 GROUP_CONCAT 在查询中生成一个“序列化”数组,然后在您的应用程序上将其反序列化。

--编辑--经过进一步测试,我注意到下面的代码无法按预期工作。但序列化然后反序列化的想法仍然存在。

$sql = " SELECT CONCAT(r.first_name, ' ', r.last_name) as name, GROUP_CONCAT ( CONCAT(f.first_name, ' ', f.last_name) SEPARATOR '|' ) as friends FROM friend_list r JOIN friend_list f ON f.friend = r.id;" ;

And to "unserialize" it in PHP:

$friendsArray = explode('|', $r['friends'])

关于mysql - 如何从 SQL 子查询返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56530260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com