MySQL的字符串函數(shù)之一是INSTR函數(shù)。該函數(shù)返回一個(gè)字符串中被搜索字符串第一次出現(xiàn)的位置。
SELECT INSTR('hello world', 'world');
以上查詢結(jié)果將返回?cái)?shù)字7,因?yàn)椤皐orld”在“hello world”中的第七個(gè)字符位置上。
INSTR函數(shù)也可以接受一個(gè)可選的起始位置參數(shù),該參數(shù)指定在哪個(gè)位置開始搜索字符串。以下查詢將返回?cái)?shù)字0,因?yàn)椤皐orld”不在“hello”中出現(xiàn):
SELECT INSTR('hello', 'world');
在這種情況下,您可以將起始位置參數(shù)指定為1,以始終從字符串的開頭開始搜索:
SELECT INSTR('hello', 'world', 1);
此查詢將返回?cái)?shù)字0,因?yàn)椤皐orld”在起始位置1處找不到。
INSTR函數(shù)還可以接受第三個(gè)參數(shù),該參數(shù)指定要搜索的字符數(shù)。以下查詢將返回?cái)?shù)字0,因?yàn)椤皐orld”不能適合于“hello”,因?yàn)樗阉髯址麛?shù)僅為3:
SELECT INSTR('hello', 'world', 1, 3);
正確的查詢將是:
SELECT INSTR('hello world', 'world', 1, 10);
該查詢將返回?cái)?shù)字7,因?yàn)樵凇癶ello world”中,起始位置1處開始,不能超過10個(gè)字符,可以發(fā)現(xiàn)“world”的位置。