上一节列出了一些数字操作符,SQL还支持一些对字符串的操作符,下表包含了一些常用的与文本数据相关的操作符:
运算符 | 条件 | 举例 |
---|---|---|
= | 区分大小写的字符串比较 | col_name = “abc” |
!= or <> | 区分大小写的字符串不等比较 | col_name != “abcd” |
LIKE | 不区分大小写的字符串比较 | col_name LIKE “ABC” |
NOT LIKE | 不区分大小写的字符串不等比较 | col_name NOT LIKE “ABCD” |
% | 用在字符串的任何地方来匹配零或者多个字符的串(只能和LIKE或者NOT LIKE 一起使用) | col_name LIKE “%AT%” (matches “AT”, “ATTIC”, “CAT” or even “BATS”) |
- | 在字符串的任何地方使用来匹配单个字符(只能和LIKE或者NOT LIKE 使用 | col_name LIKE “AN_” (matches “AND”, but not “AN”) |
IN(…) | 字符串在列表中出现 | col_name IN (“A”, “B”, “C”) |
NOT IN (…) | 字符串没有在列表中出现 | col_name NOT IN (“D”, “E”, “F”) |
注意:所有的字符串必须使用引号这样才能和SQL里面的关键字区分开。
我们需要注意的是尽管这些操作符可以非常高效的帮我们进行查找,全局文本搜索最好使用专门的库比如 Apache Lucene 或者 Sphinx。这些被设计专门用来做文本搜索,因此他们更为高效并且还提供了更为丰富的查询方法。