应注意使用通配符MySQL的问题

应注意使用通配符MySQL的问题
现象:
有一张桌子action_conf,和数据如下:

如果你想获得一个en_name开始exp_site_10_记录,SQL语句是如何写的

很容易!
选择从哪里en_name action_conf like'exp_site_10_ % en_name

在IDB执行此SQL自信,你会发现结果是出乎意料的。

你会发现执行SQL上面会列出所有的记录,从exp_site_10。

原因uff1a

事实上,这是在SQL通配符。SQL,_下划线是通配符,可以匹配任何单个字符。

既然知道了原因,就很容易修改SQL:
选择从哪里en_name action_conf like'exp _ _site _10 % en_name

在将通配符添加到通配符之前,MySQL将通配符作为一个公共字符。

先进的:

整理的通配符:

%而不是一个或多个字符

_只替换字符

在{ charlist }字符列的任何单个字符

{ ^ charlist }或{!} charlist }不在字符列的任何单个字符

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部