sql instr()與LOCATE()字符串查找函數

因爲今天一網站的子分類用到了關於sql instr()與LOCATE()字符串操做函數,下面作個筆記放下來,有須要的朋友能夠參考一下。

INSTR(str,substr) 
返回字符串 str 中子字符串的第一個出現位置。這和LOCATE()的雙參數形式相同,除非參數的順序被顛倒。  mysql

 代碼以下 複製代碼
mysql> SELECT INSTR('foobarbar', 'bar');
        -> 4
mysql> SELECT INSTR('xbar', 'foobar');
        -> 0


LOCATE(substr,str) , LOCATE(substr,str,pos) 
第一個語法返回字符串 str中子字符串substr的第一個出現位置。第二個語法返回字符串 str中子字符串substr的第一個出現位置, 起始位置在pos。如若substr 不在str中,則返回值爲0。 sql

 代碼以下 複製代碼
mysql> SELECT LOCATE('bar', 'foobarbar');
        -> 4
mysql> SELECT LOCATE('xbar', 'foobar');
        -> 0
mysql> SELECT LOCATE('bar', 'foobarbar',5);
        -> 7

這個函數支持多字節字元,而且只有當至少有一個參數是二進制字符串時區分大小寫。 函數


POSITION(substr IN str) 
返回子串 substr 在字符串 str 中第一次出現的位置。若是子串 substr 在 str 中不存在,返回值爲 0: 測試

 代碼以下 複製代碼
mysql> SELECT POSITION('bar', ‘foobarbar'); 
-> 4 
mysql> SELECT POSITION('xbar', ‘foobar'); 
-> 0

效率測試 網站

 代碼以下 複製代碼

SELECT * FROM `o_soft` WHERE LOCATE('d200',tid2)>0 spa

MySQL 返回的查詢結果爲空(即零行)。 (查詢花費 0.0050 秒) .net

 代碼以下 複製代碼

SELECT * FROM `o_soft` WHERE INSTR('d200',tid2)>0 ci

MySQL 返回的查詢結果爲空(即零行)。 (查詢花費 0.0009 秒) 字符串

相關文章
相關標籤/搜索