【问题标题】:Stick MYSQL query results into string separated by a comma将 MYSQL 查询结果粘贴到用逗号分隔的字符串中
【发布时间】:2011-03-25 23:04:44
【问题描述】:

我进行的第一个查询是针对与用户关联的所有 Id:

$DBH = getDBH();
$stmt = $DBH->prepare("SELECT id FROM list WHERE user = ?");
$stmt->bind_param("s",$userid);
$stmt->execute();
$stmt->bind_result($ids);
$stmt->fetch();
$stmt->close();

当前存储在表中如下:

ID            user

1             example
4             example
7             example
15            example

id 在查询之前是未知的,与用户关联的 id 的数量将不断增长和缩小。

所以我的问题是如何查询这些 id 并将它们粘贴到一个字符串中,每个 id 用逗号分隔

例如: 1,4,7,15等等等等。

编辑:使用 GROUP CONCAT()

$stmt = $DBH->prepare("SELECT GROUP_CONCAT(id) as id FROM list WHERE user = ? GROUP BY id");
$stmt->bind_param("s",$userid);
$stmt->execute();
$stmt->bind_result($id);

【问题讨论】:

    标签: php mysql prepared-statement


    【解决方案1】:

    看看 group_concat() 函数

    请注意,字符串可以采用的最大长度由 group_concat_max_len() 变量指定,默认为 1024 个字符。

    你可以通过这个查询看到你的

    show variables like 'group%'
    

    【讨论】:

    • 我一直在研究它,但我似乎无法让它与准备好的查询一起工作,谢谢你的帮助!
    • 您是否尝试为其分配别名?从表中选择 group_concat(id) 作为 ids ...
    • 是的,我就是这样做的,看起来像这样:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 2012-05-11
    相关资源
    最近更新 更多