MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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)

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)

上記の出力でわかるように、同じ結果が得られています。


  1. MySQLのORDERBYを持つ複数のLIKE演算子?

    以下は、ORDERBY-を使用して複数のLIKE演算子を実装する構文です。 select *from yourTableName order by (    yourColumnName like '%yourValue1%' ) + (    yourColumnName like '%yourValue2%' ) + . . N desc; テーブルを作成しましょう- mysql> create table demo2 −> ( −> id int not null auto

  2. 動的配列を使用したMySQLLIKEクエリ?

    動的配列を使用してLIKEクエリを実装するための構文は、次のとおりです- 例 select *from yourTableName    where yourColumnName2 like "%yourValue%"    order by yourColumnName1 asc    limit yourLimitValue; テーブルを作成しましょう- 例 mysql> create table demo74    -> (    -> user_i