首页 > 数据库 > mysql教程 > 如何高效查询 MySQL 中逗号分隔值字段的精确匹配?

如何高效查询 MySQL 中逗号分隔值字段的精确匹配?

Linda Hamilton
发布: 2025-01-22 21:41:12
原创
288 人浏览过

How Can I Efficiently Query MySQL for Exact Matches in Comma-Separated Value Fields?

针对逗号分隔值优化 MySQL 查询

让我们检查一个 SHIRTS 表,其中的 COLORS 字段存储以逗号分隔的数字颜色代码。 简单的 LIKE 查询可能会产生不准确的结果:

<code class="language-sql">SELECT * FROM shirts WHERE colors LIKE '%1%'</code>
登录后复制

此查询返回 colors 字段中任意位置包含“1”的衬衫,包括颜色代码为 1、12 或 15 的衬衫。要仅查找颜色代码为 1 的衬衫,我们需要更精确的方法。

一种有效的技术是在比较之前在 colors 字符串两侧添加逗号:

<code class="language-sql">SELECT * FROM shirts WHERE CONCAT(',', colors, ',') LIKE '%,1,%'</code>
登录后复制

这可确保仅匹配由逗号精确分隔的颜色代码 1。

另一种有效的方法使用 FIND_IN_SET() 函数:

<code class="language-sql">SELECT * FROM shirts WHERE FIND_IN_SET('1', colors) > 0</code>
登录后复制

FIND_IN_SET() 直接检查 colors 字段中逗号分隔列表中是否存在“1”,提供准确的结果。 这种方法因其清晰和高效而受到普遍青睐。

以上是如何高效查询 MySQL 中逗号分隔值字段的精确匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板