由於今天一網站的子分類用到了關於sql instr()與LOCATE()字符串操作函數,下面做個筆記放下來,有需要的朋友可以參考一下。
INSTR(str,substr)
返回字符串 str 中子字符串的第一個出現位置。這和LOCATE()的雙參數形式相同,除非參數的順序被顛倒。
LOCATE(substr,str) , LOCATE(substr,str,pos)
第一個語法返回字符串 str中子字符串substr的第一個出現位置。第二個語法返回字符串 str中子字符串substr的第一個出現位置, 起始位置在pos。如若substr 不在str中,則返回值為0。
這個函數支持多字節字元,並且只有當至少有一個參數是二進制字符串時區分大小寫。
POSITION(substr IN str)
返回子串 substr 在字符串 str 中第一次出現的位置。如果子串 substr 在 str 中不存在,返回值為 0:
效率測試
代碼如下 復制代碼SELECT * FROM `o_soft` WHERE LOCATE('d200',tid2)>0
MySQL 返回的查詢結果為空(即零行)。 (查詢花費 0.0050 秒)
代碼如下 復制代碼SELECT * FROM `o_soft` WHERE INSTR('d200',tid2)>0
MySQL 返回的查詢結果為空(即零行)。 (查詢花費 0.0009 秒)