本文主要介绍了在MySQL中使用通配符时应注意的问题。 主要是下划线的使用容易发生的错误。 有需要的朋友请参考
症状:
有表action_conf。 数据如下。
如果想获取以exp_site_10_开头的en_name的记录,该如何写sql语句?
so easy!
select en _ name from action _ confwhereen _ name like ' exp _ site _ 10 _ % '
如果自信地在idb上运行此sql,您会发现结果并不理想。
运行上面的sql将列出以exp_site_10开头的所有记录。
原因:
其实,这都是sql通配符的错。 在sql中,下划线_是通配符,与任意一个字符匹配。
如果知道原因,修改sql很容易。 正确的sql如下:
select en _ name from action _ confwhereen _ name like ' exp _ _ site _ 10 _ _ % '
如果在通配符之前添加跳转字符,mysql会将通配符视为普通字符。
高级:
通配符整理:
%将替换一个或多个字符
_只替换一个字符
[charlist]字符串中的任意一个字符
[^charlist]或[! 字符串中没有charlist]的单个字符