mysql like查询字符串示例
在mysql中如果我们要模糊查询数据我们可以使用like带%%号来实现查询,下面我来简单的介绍一下关于mysql like使用方法.
一般,使用mysql in查询,可以这样写,代码如下:
- SELECT *
- FROM `tb_require`
- WHERE `require_id`
- IN ( 23, 1024 )
这种方法一般适合数字型,如果是字符串的话,就还要加上单引号,代码如下:
- SELECT *
- FROM `tb_require`
- WHERE `require_name`
- IN ( 'aaa', 'bbbb')
在查询字符串时,如果要模糊匹配,可以使用like 加 %,代码如下:
- SELECT *
- FROM `tb_require`
- WHERE `require_name` LIKE '%aaa%' --phpfensi.com
那如果有个需求,是需要模糊查询多个字符串呢?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为三个字且第一个字是“三”的;