1. 程式人生 > >mysql萬用字元進行模糊查詢

mysql萬用字元進行模糊查詢

在mysql資料庫中,當我們需要模糊查詢的時候 ,我們會使用到萬用字元。

首先我們來了解一下2個概念,一個是操作符,一個是萬用字元。

操作符

like就是SQL語句中的操作符,它的作用是指示在SQL語句後面的搜尋模式是利用萬用字元而不是直接相等匹配進行比較。

注意:如果使用like操作符時沒有使用萬用字元,那麼效果是和等號是一致的。

SELECT id,title FROM table WHERE title like '張三';

這種寫法就只能匹配張三的記錄,而不能匹配像張三是個好人這樣的記錄。

萬用字元

%(百分號),_(下劃線)就是萬用字元,%表示任何字元出現任意次數(可以是0次),_表示單個字元,使用者如下:

1 SELECT id,title FROM table WHERE title like '張三%';
2 SELECT id,title FROM table WHERE title like '%張三';
3 SELECT id,title FROM table WHERE title like '%張三%';

1表示匹配以張三開始的記錄,2表示匹配以張三結束的記錄,3表示匹配含有張三的記錄。

1 SELECT id,title FROM table WHERE title like '張三_';
2 SELECT id,title FROM table WHERE
title like '__張三';

1表示匹配像張三好這樣的記錄,2表示匹配像你好張三這樣的記錄。

使用注意

注意大小寫,在使用模糊匹配時,也就是匹配文字時,mysql是可能區分大小的,也可能是不區分大小寫的,這個結果是取決於使用者對MySQL的配置方式。

注意尾部空格。

注意NULL,%可以匹配任意字元,但是不能匹配NULL。

合理使用

MySQL的萬用字元很有用,但這種功能是有代價的,萬用字元搜尋的處理一般要比前面討論的其他搜尋所花時間更長,這裡給出一些使用萬用字元要記住的技巧。

不要過度使用萬用字元,如果其他操作符能達到相同的目的,應該 使用其他操作符。

在確實需要使用萬用字元時,除非絕對有必要,否則不要把它們用 在搜尋模式的開始處,把萬用字元置於搜尋模式的開始處,搜尋起 來是最慢的。

仔細注意萬用字元的位置,如果放錯地方,可能不會返回想要的數。