MySQL SELECT查询是否区分大小写?

时间:2014-10-23 19:17:47

标签: mysql case-sensitive

我有一个带方法帖子的表单,用户会根据品牌日期过滤结果等。 如果MySQL中的品牌名称以非小写示例(samsung)存储,并且搜索输入字段用大写示例(SAMSUNG)填充,它仍然会给我正确的结果或会导致错误吗?

$branded=mysqli_real_escape_string($db, $_GET['brand']); // USER TYPED SAMSUNG
}
$query= "SELECT * FROM `brands` WHERE `brand` = '$branded' LIMIT 1"; // stored as samsung

2 个答案:

答案 0 :(得分:1)

语言环境是" latin1_swedish_ci"。

因为它以" ci"结尾,所以必须 c ase- i nsensitive。

答案 1 :(得分:0)

除非您进行二进制比较,否则大多数MySQL排序规则都不区分大小写。在您的查询案例中,不应该做任何改变。但是,以下查询将标记" samsung"和"三星"与众不同:

$branded=mysqli_real_escape_string($db, $_GET['brand']); // USER TYPED SAMSUNG
}
$query= "SELECT * FROM `brands` WHERE BINARY `brand` = '$branded' LIMIT 1"; // stored as samsung

您必须检查您的排序规则以确定它是否区分大小写,但最简单的方法就是测试它。

使用此链接作为参考:

http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html