instr()返回值是目標字符(串)在母字符裏第一次出現的位置,故而是整數。函數
例如:性能
instr("efabcdefg","e")的結果固然是1 instr("efabcdefg","e",2)的結果就是7 instr("efabcdefg","a",5)的結果就是0 instr("efabcdefg","k")的結果也是0code
instr是內置函數,他是會走索引的,性能好。索引
like不必定:like '%iii%'是不走索引的,like 'ik%'走索引。字符串
例如: 代替like: SELECT code, name, dept, occupation FROM staff WHERE instr(code, '001') > 0; 等同於 SELECT code, name, dept, occupation FROM staff WHERE code LIKE '1%' ;io
代替in: SELECT code , name , dept, occupation FROM staff WHERE code IN ('A10001','A10002'); 等同於 SELECT code , name , dept, occupation FROM staff WHERE instr('A10001,A10002',code)>0搜索
可是要注意,若是要搜索的字符串不符合規範 是000 那麼 instr('A10001,A10002',code)>0 確定是大於0 而WHERE code IN ('A10001','A10002');是不成立的,因此在使用的時候必定要確認要搜索的字符串是否符合邏輯規則co