在MySQL中,没有内置的CHARINDEX
函数,但是可以使用LOCATE
或者INSTR
函数来实现类似的功能
假设我们有一个表employees
,包含两个字段:id
和name
。我们想要查询名字中包含字母"a"的所有员工。
使用LOCATE
函数:
SELECT * FROM employees WHERE LOCATE('a', name) > 0;
使用INSTR
函数:
SELECT * FROM employees WHERE INSTR(name, 'a') > 0;
这两个查询都会返回名字中包含字母"a"的所有员工。LOCATE
和INSTR
函数的区别在于参数的顺序不同。LOCATE
函数的第一个参数是要查找的子字符串,第二个参数是原始字符串;而INSTR
函数的第一个参数是原始字符串,第二个参数是要查找的子字符串。
如果你想查找名字中不包含字母"a"的员工,可以将条件改为LOCATE('a', name) = 0
或者INSTR(name, 'a') = 0
。