MySQL喜欢IN()?

您也可以IN()借助正则表达式(regexp)来实现MySQL Like 。语法如下-

select *from yourTableName where yourColumName regexp ‘value1|value2|value3……|valueN’;

要了解上述逻辑,您需要创建一个表。让我们首先创建一个表-

mysql> create table INDemo
   -> (
   -> Id int,
   -> Name varchar(100)
   -> );

在表中插入一些记录。查询如下-

mysql> insert into INDemo values(100,'John');
mysql> insert into INDemo values(104,'Carol');
mysql> insert into INDemo values(108,'David');
mysql> insert into INDemo values(112,'Smith');
mysql> insert into INDemo values(116,'Johnson');
mysql> insert into INDemo values(120,'Sam');

现在,我们可以在SELECT语句的帮助下显示所有记录。查询如下-

mysql> select *from INDemo;

以下是输出-

+------+---------+
| Id   | Name    |
+------+---------+
| 100  | John    |  
| 104  | Carol   |
| 108  | David   |
| 112  | Smith   |
| 116  | Johnson |
| 120  | Sam     |
+------+---------+
6 rows in set (0.00 sec)

使用类似的regexp IN()。您可以应用上面已经讨论过的上述语法。查询如下-

mysql> select *from INDemo where Id regexp '112|116|100';

以下是输出-

+------+---------+
| Id   | Name    |
+------+---------+
| 100  | John    |
| 112  | Smith   |
| 116  | Johnson |
+------+---------+
3 rows in set (0.21 sec)

您将获得与相同的输出IN()。现在,让我们借助进行检查IN()。查询如下-

mysql> select *from INDemo where Id IN(112,116,100);

这是输出

+------+---------+
| Id   | Name    |
+------+---------+
| 100  | John    |
| 112  | Smith   |
| 116  | Johnson |
+------+---------+
3 rows in set (0.00 sec)

如您在上面的输出中看到的,我们得到了相同的结果。