检查MySQL中以逗号分隔的列表中是否存在值?

要检查逗号分隔列表中是否存在值,可以使用FIND_IN_SET()函数。

语法如下

SELECT *FROM yourTablename WHERE FIND_IN_SET(‘yourValue’,yourColumnName) > 0;

让我们首先创建一个表。创建表的查询如下

mysql> create table existInCommaSeparatedList
   - > (
   - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   - > Name varchar(200)
   - > );

现在,您可以使用insert命令在表中插入一些记录。

查询如下

mysql> insert into existInCommaSeparatedList(Name) values('John,Carol,Sam,Larry,Bob,David');
mysql> insert into existInCommaSeparatedList(Name) values('Maxwell,Chris,James');
mysql> insert into existInCommaSeparatedList(Name) values('Robert,Ramit');

使用select语句显示表中的所有记录。

查询如下

mysql> select *from existInCommaSeparatedList;

以下是输出

+----+--------------------------------+
| Id | Name                           |
+----+--------------------------------+
|  1 | John,Carol,Sam,Larry,Bob,David |
|  2 | Maxwell,Chris,James            |
|  3 | Robert,Ramit                   |
+----+--------------------------------+
3 rows in set (0.00 sec)

这是查询值,以逗号分隔的列表中是否存在查询。我们正在检查带有逗号分隔文本“ Robert”的字段

mysql> SELECT *FROM existInCommaSeparatedList WHERE FIND_IN_SET('Robert',Name) > 0;

以下是输出

+----+--------------+
| Id | Name         |
+----+--------------+
|  3 | Robert,Ramit |
+----+--------------+
1 row in set (0.00 sec)