模糊匹配
2016.12.1
九.模糊匹配
9.1 LIKE與通配符%
SELECT
Columnlist
FROM table
WHERE columnlist LIKE ‘%value%’
百分號%用作通配符,表示任意的字符,它也可以表示0個字符的一個列表,%放在value前面表示value前面可以有任意多個字符的短語,%放在后面表示value后面可以有任意多個字符組成的短語。
在ORACLE中,當判斷與直接量匹配時,區分大小寫,即:VALUE與value是不同的。一般先使用UPPER/LOWER函數將數據轉換成與直接量相同的大寫或者小寫。
SELECT
Columnlist
FROM table
WHERE UPPER(columnlist) LIKE ‘%VALUE%’;
如果只想查找包含value但是又不是以value開頭或者結尾的情況時,只需要在百分號與value之間加空格。
SELECT
Columnlist
FROM table
WHERE UPPER(columnlist) LIKE ‘% VALUE %’;
9.2通配符_,[characterlist],[^characterlist]
_通配符替代一個字符。后面兩個通配符在MYSQL和ORACLE中不存在。
SELECT
Columnlist
FROM table
WHERE columnlist LIKE ‘_value’
這個語句會從列中查詢出以value結尾的但只有6個字符組成的記錄行。
SELECT
Columnlist
FROM table
WHERE columnlist LIKE ‘[cmk]value’
查詢出以value結尾,但是總共由6個字符組成且第一個字符必須是c,m,k中的一個。
SELECT
Columnlist
FROM table
WHERE columnlist LIKE ‘[^cmk]value’
查詢出以value結尾,但是總共由6個字符組成且第一個字符是除c,m,k之外的一個。
9.3 按照讀音匹配
SELECT
SOUNDEX(‘Smith’)
SOUNDEX(‘Smythe’)
SOUNDEX函數會返回由4個字符組成的代碼。第一個字符總是短語的第一個字符。如上面就會返回S。另外3個字符是根據短語的讀音經過計算得到。
總結
- 上一篇: Maven中Spring-Data-Re
- 下一篇: 深入理解JVM虚拟机读书笔记【第七章】虚