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

mysqlmysqli database

要检查逗号分隔列表中是否存在值,可以使用 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)
   - > );
Query OK, 0 rows affected (0.68 sec)

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

查询如下

mysql> insert into existInCommaSeparatedList(Name) values('John,Carol,Sam,Larry,Bob,David');
Query OK, 1 row affected (0.35 sec)
mysql> insert into existInCommaSeparatedList(Name) values('Maxwell,Chris,James');
Query OK, 1 row affected (0.14 sec)
mysql> insert into existInCommaSeparatedList(Name) values('Robert,Ramit');
Query OK, 1 row affected (0.34 sec)

使用 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)

相关文章