在查询的时候在varchar or char or blob字段名前加上Binary可以解决模糊查询的精度问题,但我再用的时候去出现这样的错误:
Lost connection to MySQL server during query
当我把字段前面的Binary去掉,查询就没问题了,这是我的查询语句。通过表单提交条件,php实现的,
$sql = "select cardid,company,name from namecard where";
if(!empty($name))
$sql .=" Binary name like '$name%'";
if(!empty($company))
$sql .=" and Binary company like '%$company%'";
if(!empty($c_telephone))
$sql .=" and c_telephone like '$c_telephone%'";
if(!empty($address))
$sql .=" and Binary address like '%$address%' and owner='yhlong'";
if($status ==1)
$sql .=" and status like '$status%' and owner='yhlong'";
$result = mysql_query($sql) or die(mysql_error());
请大家讨论一下为什么会发生这种情况,该怎样避免?
---------------------------------------------------------------
我再我的机器上也重现我这个错误,
主要是因为执行 带有Binary的操作时,
MySQL服务器执行了非法操作!!!!
原因不明,
升级到MySQL4.0.0后,问题不再重现,
重新安装MySQL3.23.35,问题依旧不再重现,
:《
建议在使用Binary时要注意,
最好少用,
可以将字段加Binary属性以代替使用Binary操作
-------------------------------------------------
select cardid,company,name from namecard where name like '于杰%' and company like '%%' and c_telephone like '%' and address like '%%';
这条语句的作用等同于
select cardid,company,name from namecard where name like '于杰%';