news 2026/8/6 23:42:51

MySQL 英文逗号隔开的数据如何模糊精确查询

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 英文逗号隔开的数据如何模糊精确查询

在 PHP 中,如果你的数据字段内容是类似"1,3,5,13,23"这样的字符串(多个数字用英文逗号分隔),而你只想精确匹配包含数字3(即单独的3,而不是132330等),那么不能直接使用 SQL 的LIKE '%3%',因为那样会误匹配包含3的其他数字。

方法一:使用 MySQL 的 REGEXP(推荐)

假设你的字段名为numbers,表名为my_table,你可以这样写 SQL:

SELECT * FROM my_table WHERE numbers REGEXP '(^|,)3(,|$)';

解释:

  • (^|,)表示字符串开头或逗号(即前面是边界)
  • 3是你要匹配的数字
  • (,|$)表示后面是逗号或字符串结尾(即后面是边界)

这样就能精确匹配单独的3,不会匹配132330等。

方法三:使用 FIND_IN_SET(MySQL 特有函数)

MySQL 提供了FIND_IN_SET函数,该函数返回一个整数,表示在字符串中搜索到的位置,专门用于在逗号分隔的字符串中查找值:

SELECT * FROM my_table WHERE FIND_IN_SET('3', numbers) > 0;

注意:FIND_IN_SET要求字段值是纯逗号分隔,不能有空格。如果数据中可能有空格(如"1, 3, 5"),需要先用REPLACE(numbers, ' ', '')清理。

如果数据内容是一个 JSON 数组,则需要使用 JSON_CONTAINS() 函数来查询

JSON_CONTAINS(numbers, '3')

今天在查询包含指定的标签数据时,想到以前做过,但是想不起怎么弄的了,特此记录一下,方便后续查看。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 15:27:09

终极修复指南:彻底解决Atmosphere固件2168-0002启动错误

终极修复指南:彻底解决Atmosphere固件2168-0002启动错误 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere 如果你在使用Nintendo …

作者头像 李华
网站建设 2026/8/7 15:12:19

第一章——办公自动化之Word报告自动生成:解放双手,高效创作

在日常办公中,我们经常会面临重复撰写格式相似的Word报告的任务。比如,每月的项目进度报告、销售业绩汇报等,这些报告往往只是数据和细节有所不同,但整体格式和框架基本一致。手动撰写不仅耗费大量时间和精力,还容易出…

作者头像 李华
网站建设 2026/8/4 17:15:22

压电材料的d33(纵向压电应变常数)测试流程及影响因素

压电材料的d33(纵向压电应变常数)是衡量其机电耦合性能的核心指标。传统的静态测试虽然简单,但往往无法反映材料在实际振动或高频工作环境下的真实表现。动态力测试(Dynamic Force Testing)通过施加交变应力并测量响应…

作者头像 李华
网站建设 2026/8/7 22:33:37

中烟创新连续两年被认定为国家级科技型中小企业

在科技创新深度重构产业竞争格局、驱动转型升级的当下,权威的国家级资质认定已成为客观评判企业研发体系成熟度、核心技术储备与可持续成长潜力的关键性标尺与系统性评估框架。北京中烟创新科技有限公司(简称:中烟创新)凭借其在技…

作者头像 李华
网站建设 2026/8/5 19:55:30

s4cmd完整指南:终极高性能Amazon S3命令行工具

s4cmd完整指南:终极高性能Amazon S3命令行工具 【免费下载链接】s4cmd Super S3 command line tool 项目地址: https://gitcode.com/gh_mirrors/s4/s4cmd s4cmd是一个专门为Amazon S3存储服务设计的高性能命令行工具,采用纯Python编写&#xff0c…

作者头像 李华