MySQL Select where 的值在列表字符串中?


为此,请使用 FIND_IN_SET()。

让我们创建一个表 -

示例

mysql> create table demo81
   -> (
   -> id int not null auto_increment primary key,
   -> username varchar(200)
   -> );
Query OK, 0 rows affected (1.44

使用插入命令将一些记录插入到表中 -

示例

mysql> insert into demo81(username) values('John,Chris,David');
Query OK, 1 row affected (0.11

mysql> insert into demo81(username) values('Mike,Sam');
Query OK, 1 row affected (0.14

mysql> insert into demo81(username) values('Chris,Bob,Sam');
Query OK, 1 row affected (0.13

mysql> insert into demo81(username) values('Mike,John,Chris');
Query OK, 1 row affected (0.23

使用 select 语句从表中显示记录 -

示例

mysql> select *from demo81;

这将产生以下输出 -

输出

+----+------------------+

| id | username         |

+----+------------------+

|  1 | John,Chris,David |

|  2 | Mike,Sam         |

|  3 | Chris,Bob,Sam    |

|  4 | Mike,John,Chris  |

+----+------------------+

4 rows in set (0.00 sec)

以下是查询,用于选择值在列表字符串内的值 -

示例

mysql> select *from demo81 where find_in_set('Chris',username) > 0;

这将产生以下输出 -

输出

+----+------------------+

| id | username         |

+----+------------------+

|  1 | John,Chris,David |

|  3 | Chris,Bob,Sam    |

|  4 | Mike,John,Chris  |

+----+------------------+

3 rows in set (0.03 sec)

更新时间:12-11-2020

4K+ 浏览量

开启你的 职业生涯

通过完成课程获取认证

开始
广告