要检查逗号分隔列表中是否存在值,可以使用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)