MySQL LIKE IN()
你也可以通过正则表达式(regexp)来实现 MySQL Like IN()。语法如下 -
select *from yourTableName where yourColumName regexp ‘value1|value2|value3……|valueN’;
为了理解以上逻辑,你需要创建一个表。我们先创建一个表 -
mysql> create table INDemo -> ( -> Id int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.90 sec)
将一些记录插入表中。查询如下 -
mysql> insert into INDemo values(100,'John'); Query OK, 1 row affected (0.13 sec) mysql> insert into INDemo values(104,'Carol'); Query OK, 1 row affected (0.18 sec) mysql> insert into INDemo values(108,'David'); Query OK, 1 row affected (0.19 sec) mysql> insert into INDemo values(112,'Smith'); Query OK, 1 row affected (0.12 sec) mysql> insert into INDemo values(116,'Johnson'); Query OK, 1 row affected (0.17 sec) mysql> insert into INDemo values(120,'Sam'); Query OK, 1 row affected (0.16 sec)
现在我们可以通过 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)
正如你在以上输出中看到的,我们得到了相同的结果。
广告