如何在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)
阅读更多:MySQL 教程