为了账号安全,请及时绑定邮箱和手机立即绑定

在MySQL中使用通配符时应该注意的问题

标签:
MySQL

现象:


有一个表 action_conf,数据如下:
如果想获取以exp_site_10_开头的en_name的记录,sql语句该如何写?

   so easy!

?

1select en_name from action_conf where en_name like 'exp_site_10_%'

   很自信的在idb中执行了这条sql,就会发现结果并不是所预期的。

   你会发现,执行上面的sql会把所有以 exp_site_10开头的记录都列出来了。

   原因:

   其实,这都是sql中的通配符在作怪。在sql中,下划线_是一个通配符,能匹配任何单一字符。

   既然知道原因,修改sql就很容易了。正确的sql应该是:

?

1select en_name from action_conf where en_name like 'exp\_site\_10\_%'

   在通配符前面增加转移字符后,mysql就会把通配符视为普通字符。

   进阶:

   通配符整理:

 %                                  替代一个或多个字符

 _                                  仅替代一个字符

 [charlist]                         字符列中的任何单一字符

 [^charlist]或[!charlist]           不在字符列中的任何单一字符

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消