mysql like查询字符串示例

在mysql中如果我们要模糊查询数据我们可以使用like带%%号来实现查询,下面我来简单的介绍一下关于mysql like使用方法.

一般,使用mysql in查询,可以这样写,代码如下:

  1. SELECT *
  2. FROM `tb_require`
  3. WHERE `require_id`
  4. IN ( 23, 1024 )

这种方法一般适合数字型,如果是字符串的话,就还要加上单引号,代码如下:

  1. SELECT *
  2. FROM `tb_require`
  3. WHERE `require_name`
  4. IN ( 'aaa', 'bbbb')

在查询字符串时,如果要模糊匹配,可以使用like 加 %,代码如下:

  1. SELECT *
  2. FROM `tb_require`
  3. WHERE `require_name` LIKE '%aaa%' --phpfensi.com

那如果有个需求,是需要模糊查询多个字符串呢?like 加 in连用,如何写?这时候可以使用mysql的CONCAT函数,代码如下:

  1. SELECT * FROM customers
  2. 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为三个字且第一个字是“三”的;