【发布时间】:2012-06-11 20:35:03
【问题描述】:
我目前有一个 MySQL 表,例如:
id | friend
1 | 2
1 | 5
1 | 10
3 | 6
15 | 19
21 | 4
我正在尝试获取某个特定用户的所有好友 ID,并将它们排列到一个逗号分隔的列表中。比如抓取user1的好友,返回为
$friend_list = 2,5,10
目前,我有:
$sql = "SELECT friend FROM table__friends WHERE id = ".$user_id;
不过,这只占一排..请帮忙!
谢谢
【问题讨论】:
-
我非常强烈地反对
GROUP_CONCAT- 我觉得这就像滥用数据库引擎。 -
@jnylen - 不知道为什么,MySQL 人员也没有对此提出警告,问题被标记为 MySQL,而不是 PHP。 - 对每个他自己的朋友,只是说:)
-
@GregP 我猜这是因为数据库操作应该操作并返回数据表——它们不应该处理像逗号分隔的字符串这样的“假”数据类型,所以这是一种不好的“代码味道”大部头书。任何时候你有一个逗号分隔的列表,你可能应该把它放在行或数组中。这是您可能面临的问题的一个很好的例子:stackoverflow.com/questions/6643656/…
-
公平的回应,虽然我很不同意。要求数据库引擎返回我喜欢的格式与结构或规范化无关。
标签: mysql