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 秒) 字符串