现象:





有一张桌子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 }不在字符列的任何单个字符