mysql like查詢字串樣本

來源:互聯網
上載者:User

一般,使用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為三個字且第一個字是“三”的;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.