首页 >数据库 >mysql教程 >如何在 MySQL 中高效搜索逗号分隔列表中的特定值?

如何在 MySQL 中高效搜索逗号分隔列表中的特定值?

Linda Hamilton
Linda Hamilton原创
2024-11-09 14:17:02864浏览

How to Efficiently Search for Specific Values in Comma-Separated Lists in MySQL?

在 MySQL 中搜索逗号分隔列表

处理包含逗号分隔 ID 列表的 MySQL 字段时(例如,“ 12,13,14,16"),使用 LIKE 运算符专门搜索该列表中的某些值变得具有挑战性。

面临此问题的用户寻求一种搜索特定值的方法(例如, “1”)在这样的字段内。但是,使用“SELECT ... WHERE field LIKE '%1%'”这样的查询将导致获取几乎所有条目,因为该字段中 ID 普遍在 10-20 范围内。

为了解决这个问题,用户考虑改为搜索“%1,%”。但是,这种方法不适用于字段中的第一个和最后一个 ID。

解决方案:FIND_IN_SET 函数

解决方案在于利用 MySQL 中的 FIND_IN_SET 函数。 FIND_IN_SET 采用两个参数:要搜索的字符串和要在其中搜索的逗号分隔字符串。它返回搜索字符串中正在搜索的字符串的位置,如果未找到,则返回 0。

在这种情况下,要在字段中搜索“1”,查询将为:

SELECT ... WHERE FIND_IN_SET('1', field)

此查询将仅返回字段中以逗号分隔的 ID 列表中存在“1”的行。

以上是如何在 MySQL 中高效搜索逗号分隔列表中的特定值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn