MySQL 是一個常用的開源的關系型數據庫管理系統,支持多種操作系統。字符串是在 MySQL 中經常用到的基本數據類型之一。如需查找字符串中的某一子串或對字符串進行某種修改操作,需要知道該子串的位置。下面將介紹 MySQL 中字符串的位置計算。
MySQL 中字符串的第一位是1而不是0。若想查找字符串中某個子串的位置,可以使用INSTR
函數。該函數的語法如下:
INSTR(str, substr)
其中,str
表示要查找的源字符串,substr
表示要查找的子串。該函數返回子串在源字符串中第一次出現的位置。若源字符串中不含有該子串,則返回0。例如:
SELECT INSTR('hello world', 'world');
返回結果為:
7
若要查找子串最后一次出現的位置,則可以使用INSTR
函數結合REVERSE
函數來實現。這兩個函數的語法如下:
INSTR(str, substr) REVERSE(str)
其中,str
表示要查找的源字符串,substr
表示要查找的子串,REVERSE
函數表示反轉字符串。該函數返回子串在源字符串中最后一次出現的位置。例如:
SELECT LENGTH('hello world') - INSTR(REVERSE('hello world'), REVERSE('l'));
返回結果為:
9
即,字符 'l' 在字符串 'hello world' 中最后一次出現在第9位。