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)
上記の出力でわかるように、同じ結果が得られています。
-
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
-
動的配列を使用したMySQLLIKEクエリ?
動的配列を使用してLIKEクエリを実装するための構文は、次のとおりです- 例 select *from yourTableName where yourColumnName2 like "%yourValue%" order by yourColumnName1 asc limit yourLimitValue; テーブルを作成しましょう- 例 mysql> create table demo74 -> ( -> user_i