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

MySQL LIKE句でユーザー変数を使用する方法は?


CONCAT()関数を使用すると、LIKE句でユーザー変数を操作できます。構文は次のとおりです。

set @anyVariableName='anyValue';
select yourColumnName1,yourColumnName2,yourColumnName3,...N from yourTableName
whereyourColumnName like CONCAT('%', @anyVariableName, '%');

上記の構文を理解するために、最初にテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。

mysql> create table UserVariableInLike
-> (
-> id int,
-> Name varchar(100),
-> Age int
-> );
Query OK, 0 rows affected (0.83 sec)

挿入コマンドを使用して、テーブルにレコードを挿入します。クエリは次のとおりです。

mysql> insert into UserVariableInLike values(101,'John',23);
Query OK, 1 row affected (0.23 sec)

mysql> insert into UserVariableInLike values(102,'John Smith',24);
Query OK, 1 row affected (0.20 sec)

mysql> insert into UserVariableInLike values(103,'Carol Smith',23);
Query OK, 1 row affected (0.15 sec)

mysql> insert into UserVariableInLike values(104,'Johnson',25);
Query OK, 1 row affected (0.20 sec)

mysql> insert into UserVariableInLike values(105,'Adam Smith',26);
Query OK, 1 row affected (0.21 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです

mysql> select *from UserVariableInLike;

以下は出力です。

+------+-------------+------+
| id   | Name        | Age  |
+------+-------------+------+
| 101  | John        | 23   |
| 102  | John Smith  | 24   |
| 103  | Carol Smith | 23   |
| 104  | Johnson     | 25   |
| 105  | Adam Smith  | 26   |
+------+-------------+------+
5 rows in set (0.00 sec)
これは、LIKE句でユーザー変数を使用するクエリです。クエリは次のとおりです-

mysql> set @searchName='John';
Query OK, 0 rows affected (0.00 sec)

mysql> select id,Name,Age from UserVariableInLike where Name like CONCAT('%',
@searchName, '%');

以下は出力です。

+------+------------+------+
| id   | Name       | Age  |
+------+------------+------+
| 101  | John       | 23   |
| 102  | JohnSmith  | 24   |
| 104  | Johnson    | 25   |
+------+------------+------+
3 rows in set (0.05 sec)

  1. MySQL LIKEクエリを使用して、%を含む列値を検索するにはどうすればよいですか?

    %を使用して列の値を検索する場合、構文は次のようになります- select * from yourTableName  where yourColumnName LIKE '\%%'; まずテーブルを作成しましょう- mysql> create table DemoTable1497    -> (    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.55 sec) insert-を使用して、テーブルにいくつかの

  2. MySQLクエリでLIKE句を2回使用する

    まずテーブルを作成しましょう- mysql> create table DemoTable2009 (    Name varchar(20) ); Query OK, 0 rows affected (0.51 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable2009 values('John Doe'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable2009 valu