友荐云推荐

如:在模糊查询标题中包含 'flash' 这个单词可写为

select title from table where binary title like '%flash%'
如果将 flash 写为大写的 FLASH 那么
select title from table where binary title like '%FLASH%'
将查询不到。

这样在查询的时候就会按照大小写来进行搜索
当然也可以修改数据库字段的类型为 'binary’
这样你所有的查询都将以区分大小写来查询。

注:以上的操作只适用于英文,如果要查询的关键字是汉字,则会查询不到。直今还没有具体的解决办法。

原因: 在MySQL中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在MySQL的很多版本中都存在。如果这个问题不解决,那么MySQL将无法实际处理中文。?
出现这个问题的原因是:MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了。

出现这种情况也可通过另一种方式来实现(个人思路):如

如果既要判断英文又要判断中文,那么可通过一个方法判断关键字是中文 还是英文。如果是中文使用一种查询方法,英文使用一种可解决。

具体实例:

//$str="abc";

$str="张";

// preg_match("/[\x80-\xff]/", $path)判断中文,binary不支持中文的使用

if(preg_match("/[\x80-\xff]/", $path)) {

$sql = "SELECT id FROM student WHERE name like '$str"; //却掉 binary

}else{

$sql = "SELECT id FROM student WHERE binary name like '$str'";

}