mysql like查询字符串示例
一般,使用mysql in查询 可以这样写
代码如下 | |
SELECT * |
这种方法一般适合数字型,如果是字符串的话,就还要加上单引号。如:
代码如下 | |
SELECT * |
在查询字符串时,如果要模糊匹配,可以使用like 加 %。如:
代码如下 | |
SELECT * |
那如果有个需求,是需要模糊查询多个字符串呢?like 加 in连用,如何写?
这时候可以使用mysql的CONCAT函数
代码如下 | |
SELECT * FROM customers WHERE 'Robert Bob Smith III, PhD.' LIKE CONCAT('%',name,'%') |
这样就解决了 like in的问题。
需要注意的是CONCAT后面需要紧跟着括号,不要有空格,有空格的话,可能会报错哦。
注意在你使用SQL模式时,你不能使用=或!=;而使用LIKE或NOT LIKE比较操作符。
SELECT 字段 FROM 表 WHERE 某字段 Like 条件
其中关于条件,SQL提供了四种匹配模式:
1,%:表示任意个或多个字符。可匹配任意类型和长度的字符。
比如
代码如下 | |
SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ |
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
代码如下 | |
SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE ‘%猫%’ |
若使用
代码如下 | |
SELECT * FROM [user] WHERE u_name LIKE ‘%三%猫%’ |
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
2,_:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符)
比如
代码如下 | |
SELECT * FROM [user] WHERE u_name LIKE ‘_三_’ |
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
再比如
代码如下 | |
SELECT * FROM [user] WHERE u_name LIKE ‘三__’; |
只找出“三脚猫”这样name为三个字且第一个字是“三”的;