MySQL的字符串函數之一是INSTR函數。該函數返回一個字符串中被搜索字符串第一次出現的位置。
SELECT INSTR('hello world', 'world');
以上查詢結果將返回數字7,因為“world”在“hello world”中的第七個字符位置上。
INSTR函數也可以接受一個可選的起始位置參數,該參數指定在哪個位置開始搜索字符串。以下查詢將返回數字0,因為“world”不在“hello”中出現:
SELECT INSTR('hello', 'world');
在這種情況下,您可以將起始位置參數指定為1,以始終從字符串的開頭開始搜索:
SELECT INSTR('hello', 'world', 1);
此查詢將返回數字0,因為“world”在起始位置1處找不到。
INSTR函數還可以接受第三個參數,該參數指定要搜索的字符數。以下查詢將返回數字0,因為“world”不能適合于“hello”,因為搜索字符數僅為3:
SELECT INSTR('hello', 'world', 1, 3);
正確的查詢將是:
SELECT INSTR('hello world', 'world', 1, 10);
該查詢將返回數字7,因為在“hello world”中,起始位置1處開始,不能超過10個字符,可以發現“world”的位置。