You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MySQL DISTINCT查询结果存入PHP变量并拼接值

问题解决:MySQL DISTINCT结果拼接为PHP字符串

核心问题分析

你的代码存在两个关键问题:

  1. 循环中每次直接覆盖$suppliers变量,最终只会保留最后一条查询结果;若查询无返回值,变量未初始化会输出为空。
  2. COLUMN是MySQL保留关键字,直接在SQL中使用会触发语法错误,导致查询失败。

修复方案(两种实现方式)

方式一:数组存储+implode拼接(推荐,更灵活)

// 用反引号包裹保留关键字`COLUMN`
$sql = "SELECT DISTINCT `COLUMN` FROM table WHERE <multiple conditions>";
$result = mysqli_query($con, $sql);

// 先检查查询是否成功
if (!$result) {
    die(mysqli_error($con));
}

// 初始化空数组存储结果
$suppliers = [];
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    $suppliers[] = $row['COLUMN'];
}

// 用'-'拼接数组元素为字符串
$suppliersStr = implode('-', $suppliers);
echo $suppliersStr; // 输出:PLENITUDE-IREN

方式二:直接字符串累加

$sql = "SELECT DISTINCT `COLUMN` FROM table WHERE <multiple conditions>";
$result = mysqli_query($con, $sql);

if (!$result) {
    die(mysqli_error($con));
}

// 初始化空字符串
$suppliers = '';
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    // 非首个元素时先添加分隔符
    if (!empty($suppliers)) {
        $suppliers .= '-';
    }
    $suppliers .= $row['COLUMN'];
}

echo $suppliers; // 输出:PLENITUDE-IREN

额外注意事项

  • 永远要检查数据库查询的返回值,避免因SQL语法错误、连接问题导致后续逻辑出错。
  • 若你的字段名确实是COLUMN,必须用反引号包裹;建议尽量避免使用MySQL保留字作为字段/表名。

内容的提问来源于stack exchange,提问作者Francesco Minniti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 10:42:35