结论:MySQL查询默认不区分大小写,但在某些情况下需要区分,可以通过使用`binary`关键字或在创建表时指定`binary`标识。区分大小写查询在处理大数据时效率较低,不建议无索引情况下使用`binary`。相比之下,带有`COLLATE utf8_bin`的查询支持索引,执行效率更高,是推荐的做法。以下是具体示例:默认情况下...
mysql查询
结论:MySQL查询默认不区分大小写,但在某些情况下需要区分,可以通过使用`binary`关键字或在创建表时指定`binary`标识。区分大小写查询在处理大数据时效率较低,不建议无索引情况下使用`binary`。相比之下,带有`COLLATE utf8_bin`的查询支持索引,执行效率更高,是推荐的做法。以下是具体示例:
默认情况下,MySQL查询不区分大小写,如:
SELECT * FROM table_name WHERE a like 'a%' 或 a like 'A%' 的效果相同。
若需区分大小写,可以采用以下方式:
SELECT * FROM table_name WHERE binary a like 'a%' 或 binary a like 'A%'
或者在创建表时指定`binary`,如:
CREATE TABLE table_name (a varchar(20) binary)
然而,使用`binary`查询不支持索引,当数据量大时,效率会显著降低。推荐使用带有`COLLATE utf8_bin`的查询,如:
SELECT * FROM `tableName` WHERE weixin = 'value' COLLATE utf8_bin LIMIT 1
通过查询分析,可见`binary`与`utf8_bin`的效率差异明显,因此在实际操作中应谨慎使用`binary`以保持高效查询。2024-10-03