MySql多列模糊查询(使用concat)
1.concat简介
CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)
mysql> SELECT CONCAT(‘My’, ‘S’, ‘QL’);
-> 'MySQL'
mysql> SELECT CONCAT(‘My’, NULL, ‘QL’);
-> NULL
mysql> SELECT CONCAT(14.3);
-> '14.3'
CONCAT_WS(separator,str1,str2,…)
2.使用
之前使用mysql对多字段模糊查询
select * from 表名where 列名1 like '%xxx%' or 列名2 like '%xxx%' or 列名3 like '%xxx%'
列多时,手动拼接很多列,or很多列。
使用concat()
SELECT * FROM 表名 WHERE concat(列名1,列名2,列名3) LIKE '%xxx%';
搞定,列相当于变量,等于把变量的值先用concat’拼接在一起,构成一新的值,再对这个值进行模糊查询