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

如何合并两个MySQL SELECT查询,获取用户屏蔽与被屏蔽列表?

合并用户屏蔽列表查询的解决方案

你可以用聚合函数+GROUP_CONCAT实现单查询同时获取两个列表,避免重复数据库操作,具体实现如下:

SQL 查询语句

SELECT
  GROUP_CONCAT(DISTINCT blocking_id) AS blocking,
  GROUP_CONCAT(DISTINCT user_id) AS blockers
FROM user_block
WHERE user_id = 1 OR blocking_id = 1;

PHP 结果处理代码

// 假设已完成查询并获取结果对象$result
$blocking = !empty($result->blocking) ? explode(',', $result->blocking) : [];
$blockers = !empty($result->blockers) ? explode(',', $result->blockers) : [];

补充说明

  • GROUP_CONCAT会将符合条件的ID拼接为逗号分隔的字符串,DISTINCT用于过滤表中可能存在的重复记录
  • 若使用MySQL,GROUP_CONCAT默认有长度限制,如需处理大量ID,可先执行SET SESSION group_concat_max_len = 1000000;临时调整限制值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:25:37