检查值是否存在于 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)
   - > );
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)

更新日期:30-7 月 -2019

超过 11,000 次浏览

启动您的 职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.