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

MySQL如何对比逗号分隔字符串数组并筛选符合条件的帖子?

MySQL查询:筛选满足多条件的逗号分隔字段条目

针对你描述的帖子表结构,要筛选出符合以下条件的条目:

  • TAGS包含12或4
  • CATEGORIES包含1或4
  • TYPE包含20

可以使用MySQL的FIND_IN_SET()函数实现精准匹配(该函数按逗号分隔的独立元素判断,避免LIKE可能出现的子串误匹配问题),具体查询语句如下:

SELECT ID, NAME, TAGS, CATEGORIES, TYPE
FROM posts
WHERE
  (FIND_IN_SET('12', TAGS) OR FIND_IN_SET('4', TAGS))
  AND
  (FIND_IN_SET('1', CATEGORIES) OR FIND_IN_SET('4', CATEGORIES))
  AND
  FIND_IN_SET('20', TYPE);

语句说明:

  • FIND_IN_SET('值', 字段):返回指定值在逗号分隔字段中的位置,存在则返回大于0的数,不存在返回0,可直接作为条件判断。
  • 三个条件组用AND连接,确保所有条件同时满足;每个条件组内部用OR连接,实现“包含其中一个即可”的逻辑。

执行该语句后,会返回预期的帖子1(News)和帖子3(Docs)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:51:30