一般,使用mysql in查詢 可以這樣寫
| 代碼如下 |
複製代碼 |
|
SELECT *
FROM `tb_require`
WHERE `require_id`
IN ( 23, 1024 ) |
這種方法一般適合數字型,如果是字串的話,就還要加上單引號。如:
| 代碼如下 |
複製代碼 |
|
SELECT *
FROM `tb_require`
WHERE `require_name`
IN ( 'aaa', 'bbbb') |
在查詢字串時,如果要模糊比對,可以使用like 加 %。如:
| 代碼如下 |
複製代碼 |
|
SELECT *
FROM `tb_require`
WHERE `require_name` LIKE '%aaa%' |
那如果有個需求,是需要模糊查詢多個字串呢?like 加 in連用,如何寫?
這時候可以使用mysql的CONCAT函數
| 代碼如下 |
複製代碼 |
SELECT * FROM customers
WHERE 'Robert Bob Smith III, PhD.' LIKE CONCAT('%',name,'%')
|
這樣就解決了 like in的問題。
需要注意的是CONCAT後面需要緊跟著括弧,不要有空格,有空格的話,可能會報錯哦。
注意在你使用SQL模式時,你不能使用=或!=;而使用LIKE或NOT LIKE比較操作符。
SELECT 欄位 FROM 表 WHERE 某欄位 Like 條件
其中關於條件,SQL提供了四種匹配模式:
1,%:表示任意個或多個字元。可匹配任意類型和長度的字元。
比如
| 代碼如下 |
複製代碼 |
| SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ |
將會把u_name為“張三”,“張貓三”、“三腳貓”,“唐三藏”等等有“三”的記錄全找出來。
另外,如果需要找出u_name中既有“三”又有“貓”的記錄,請使用and條件
| 代碼如下 |
複製代碼 |
|
SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE ‘%貓%’ |
若使用
| 代碼如下 |
複製代碼 |
| SELECT * FROM [user] WHERE u_name LIKE ‘%三%貓%’ |
雖然能搜尋出“三腳貓”,但不能搜尋出合格“張貓三”。
2,_:表示任意單個字元。匹配單個任一字元,它常用來限制運算式的字元長度語句:(可以代表一個中文字元)
比如
| 代碼如下 |
複製代碼 |
| SELECT * FROM [user] WHERE u_name LIKE ‘_三_’ |
只找出“唐三藏”這樣u_name為三個字且中間一個字是“三”的;
再比如
| 代碼如下 |
複製代碼 |
| SELECT * FROM [user] WHERE u_name LIKE ‘三__’; |
只找出“三腳貓”這樣name為三個字且第一個字是“三”的;