WHERE
子句中可以使用等号 =
来设定获取数据的条件,如 t.url = 'https://www.taobao.com'
。
但是有时候我们需要获取url
字段含有"com"
字符的所有记录,这时我们就需要在 WHERE
子句中使用 SQLLIKE
子句。
SQL LIKE
子句中使用百分号%
字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
如果没有使用百分号 %
, LIKE
子句与等号 =
的效果是一样的。
-> SELECT t.field1, t.field2,...t.fieldN
-> FROM table_name t
-> WHERE t.field1 LIKE condition1 [AND [OR]] t.filed2 = 'somevalue'
- 你可以在
WHERE
子句中指定任何条件。- 你可以在
WHERE
子句中使用LIKE
子句。- 你可以使用
LIKE
子句代替等号=
。LIKE
通常与%
一同使用,类似于一个元字符的搜索。- 你可以使用
AND
或者OR
指定一个或多个条件。- 你可以在
DELETE
或UPDATE
命令中使用WHERE...LIKE
子句来指定条件。
在WHERE LIKE
的条件查询中,SQL 提供了四种匹配方式。
%
:表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%
)表示。_
:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。[]
:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]
:表示不在括号所列之内的单个字符。其取值和[]
相同,但它要求所匹配对象为指定字符以外的任一个字符。- 查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符
%、_、[
的语句无法正常实现,而把特殊字符用“[ ]”
括起便可正常查询。
LIKE
匹配/模糊匹配,会与 %
和_
结合使用。
'%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
'_a_' //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的