mysql - sql unique和where条件无法区分大小写数据

标签 mysql sql

假设我有表A,其中包含字段名称brand,现在这个品牌字段有两行数据

Column `brand`
row1-> "zazikhan's"
row2-> "ZAZIKHAN'S"

现在,当我正常运行选择查询时,它会返回两行,例如

SELECT 
    brand
FROM
    `TableA` 
    WHERE brand="ZAZIKHAN'S"

但是我只期望一条记录,即 row2->"ZAZIKHAN'S" 但它返回了我两行。

Distinct 和 order by 函数的情况也是如此。 例如

SELECT 
        distinct(brand)
    FROM
        `TableA` 
        WHERE brand="ZAZIKHAN'S"

现在这个查询只返回一条记录,其中row1->zazikhan's,这很奇怪,我期待结果中的两行,因为两者都会根据情况发生变化

最佳答案

尝试使用 a case sensitive collation 转换您的字段就像latin1_general_cs:

SELECT DISTINCT CONVERT(brand USING latin1) COLLATE latin1_general_cs
FROM mytable

Demo here

关于mysql - sql unique和where条件无法区分大小写数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35360693/

相关文章:

mysql - Node.js - Express & mysql TypeError : res. json is not a function 尽管插入成功

mysql - 从类型 'DBNull' 到类型 'Double' 的转换无效

java - 无法访问 Spring H2 控制台

mysql - 同一个表中具有两个外键的多个联接返回零结果

php - 在 MySQL 中合并结果

mysql - 如何在 MySQL 中优化此查询

mysql - 计算具有值的行数,然后计算所有行的总数

mysql - SQL - 替换 HAVING COUNT(*) == 0

查询中的mySql多次聚合

java - Java 的 SQL 解析器库 - 检索 SQL 语句中存在的表名列表