6.5.4? “[]”通配符
“[]”通配符用于指定一系列的字符,只要滿足這些字符其中之一,且位置出現在“[]”通配符的位置的字符串就滿足查詢條件。
當然,各種通配符也可以組合使用。組合使用各種通配符時,一定要弄清其表示的匹配條件。如“LIKE '5[%]'”,其中“[]”通配符內的“%”就不能理解為“%”通配符,而只是表示“%”字符。為了使讀者便于理解,表6-5列出了幾種查詢條件及其匹配條件。
表6-5?組合通配符及其匹配條件
查?詢?條?件 | 匹?配?條?件 |
LIKE '5[%]' | 5% |
LIKE '[_]n' | _n |
LIKE '[a-cdf]' | a,b,?c,d或f |
LIKE '[-acdf]' | -,?a,?c,?d?或?f |
LIKE '[ [ ]' | [ |
LIKE ']' | ] |
LIKE 'abc[_]d%' | abc_d?或?abc_d…… |
LIKE 'abc[def]' | abcd,?abce,?或abcf |
實例21? 使用“[]”通配符查詢所有以“計”或者“生”字開頭的課程
在COURSE表中查詢所有以“計”或者“生”字開頭的所有課程的課程名(CNAME)、人數(SCOUNT)以及考試時間(CTEST)信息。實例代碼:
SELECT??CNAME, SCOUNT, CTEST FROM ??COURSE WHERE? ??CNAME LIKE '[計生]%' ORDER BY??CNAME |
運行結果如圖6.24所示。
![]() |
圖6.24? 所有以“計”或者“生”字開頭的課程名 |
在“[]”通配符內列出的字符前加符號“^”,就表示否定的意思。
實例22? 使用“[]”通配符查詢所有不以“計”或者“生”字開頭的課程名
在COURSE表中查詢所有不以“計”或者“生”字開頭的所有課程的課程名(CNAME)、人數(SCOUNT)以及考試時間(CTEST)信息。實例代碼:
SELECT??CNAME, SCOUNT, CTEST FROM ??COURSE WHERE? ??CNAME LIKE '[^計生]%' ORDER BY??CNAME |
運行結果如圖6.25所示。
![]() |
圖6.25? 所有不以“計”或者“生”字開頭的課程名 |
當然采用NOT運算符也可以得到相同的結果,此時SQL代碼如下。
SELECT??CNAME, SCOUNT, CTEST FROM ??COURSE WHERE? ??NOT CNAME LIKE '[計生]%' ORDER BY??CNAME |
運行結果如圖6.26所示。
![]() |
圖6.26? 所有不以“計”或者“生”字開頭的課程名 |