模糊查詢實質上是用利用數(shù)據(jù)庫SQL語言的模糊搜索,如‘like’,通配符‘%’,‘_’。
但我后來了解到還有‘[]’和'[^]'的用法,特此記錄
1 | “%” | 表示0個或多個字符 |
Select * from 表名 where 列名 like '%'?//查詢出全部數(shù)據(jù)? Select * from 表名 where 列名 like 'x'?//完全匹配 Select * from 表名 where 列名 like '%x'?//最右為x,前面可以有任意位字符 ? Select * from 表名 where 列名 like 'x%'?//最右為x,后面可以有任意位字符 ? Select * from 表名 where 列名 like '%x%'?//中間為x,左右都可以有任意位字符 比如 我們可以通過第三行代碼查出“abx”、“x”、“ax”但不能查出“xa”、“axy” 我們可以通過第四行代碼查出“xab”、“x”、“xa”但不能查出“ax”、“axy” 我們可以通過第五行代碼查出“xa”、“x”、“ax”、“axy”但不能查出“abc” | ||
2 | “_” | 表示一個字符 |
Select * from 表名 where 列名 like '_愷'?//最右為“愷”,前面有一位字符? Select * from 表名 where 列名 like '__愷'??//最右為“愷”,前面有兩位字符 ? Select * from 表名 where 列名 like '_愷_'??//中間為“愷”,前后各有一位字符 比如 我們可以通過第一行代碼查出姓名為兩個字且最后一個字為愷的數(shù)據(jù) 我們可以通過第二行代碼查出姓名為三個字且最后一個字為愷的數(shù)據(jù) 我們可以通過第三行代碼查出姓名為三個字且中間那個字為愷的數(shù)據(jù) | ||
3 | "[]" | 表示括號內所列字符中的一個指定一個字符,字符串或者范圍,要求所匹配對象是他們中的任意一個 注:如 [ ] 內有一系列字符( 01234、abcde 之類的)則可略寫為“0-4”、“a-e” |
Select *?from 表名 where 列名?like?'[張李王]三'?//將找出“張三”,“李三”,“王三”(而不是“張李王三”)? Select *?from 表名 where 列名?like? '老[1-9]'?//將找出“老1”,“老2”,……,“老9” | ||
4 | "[^]" | 表示不在括號列中的單個字符 其取值與[]相同,但它要求所匹配對象為指定字符以外的任一字符 |
Select *?from 表名 where 列名 like '[^張李王]三'?//將找出不姓“張”,“李”,“王”的“趙三”,“孫三”等 Select * from 表名 where 列名 like '老[^1-4]'??//將排除“老1”到“老4”,尋找“老5”,“老6”、……? | ||
5 | 特殊字符的模糊查詢 | 當要查詢的字符串包含通配符的時候,可以采用下面的方法來查詢 |
用[ ]將特殊字符包含: select * from 表名 where 列名 like '_[%]_' 或 用\將特殊字符轉義:文章來源:http://www.zghlxwxcb.cn/news/detail-704777.html select * from 表名 where 列名 like '_\%_'文章來源地址http://www.zghlxwxcb.cn/news/detail-704777.html |
到了這里,關于個人學習記錄——MySQL的模糊查詢的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!