在where 条件中使用LIKE关键字进行匹配
WHERE c1 LIKE ‘%end’ //可以匹配到“friend”等单词
如果查找模式包含了%或者_,需要用到转义字符
SELECT *
FROM table_name
WHERE c1 LIKE '%100#%%' ESCAPE '#' --SQL定义'#'为转义字符关键字
转义字符后面紧跟的’%‘表示此处要匹配一个原字符’%',因此上面的案例能匹配到:“进度已达100%,完成”
如果省略ESCASE子句,则MYSQL和PostgreSQL中,可用默认的转义字符’\'进行转义, 例如“WHERE c1 LIKE ‘%100\%%’”
与其他语法相同,与或门有短路运算,当第一步能判断出结果时,不会进行第二步判断
与其他运算符一起使用时,表示将随后的运算结果取反
NOT >
查找【不大于】指定值的数据
NOT BETWEEN
xxxAND
yyy 查找指定范围外的数据
NOT LIKE
不匹配某个模式
NOT
c1 IS NULL 不为空, 等价于 c1 IS NOT NULL
SELECT *
FROM table_name
WHERE c1="XXX"
ORDER BY c2*12 - c3
SELECT *
FROM table_name
WHERE c1="XXX"
ORDER BY 2 --第二列排序
Oracle、PostgreSQL及SQLite支持使用 NULLS FIRST
关键字,将空值排在最前;或者用NULLS LAST
关键字,将空值排在最后。
SELECT *
FROM table_name
WHERE c1="XXX"
ORDER BY c5 NULL FIRST
SCHINESE_PINYIN_M
来指定拼音排序SELECT *
FROM table_name
WHERE c1=""
ORDER BY NLSSORT(c5, 'NLS_SORT = SCHINESE_PINYIN_M')
SELECT *
FROM table_name
WHERE c1=""
ORDER BY CONVERT(c5 USING GBK) --按拼音排序
SELECT *
FROM table_name
WHERE c1=""
ORDER BY c5 COLLATE Chinese_PRC_CI_AI_KS_WS --按拼音排序
还可用别的方式:
ORDER BY c5 COLLATE Chinese_Stroke_CI_AS --按笔画顺序排序
SELECT *
FROM table_name
WHERE c1=""
ORDER BY c5 COLLATE "zh_CN" --按拼音排序
SQL标准定义了 FETCH
和OFFSET
子句限定返回结果数量(但只有Oracle、Microsoft SQL Server及PostgreSQL支持这种语法)
SELECT *
FROM table_name
OFFSET 0 ROWS
FETCH FIRST 5 ROWS ONLY;
OFFSET 表示偏移量,0则是从首项开始取。下面的FETCH表示取多少条数据,这里5表示仅取5条数据;ONLY限制了即使最后有多条重复数据也舍弃,最多只取前五条
SELECT *
FROM table_name
LIMIT 10 OFFSET 0;
也可以实现从首项开始取,取10条数据记录