在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
。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
推荐阅读:MySQL中关联删除的实际案例分析