【问题标题】:Do mysql setting Spanish equal English?mysql设置西班牙语等于英语吗?
【发布时间】:2016-03-22 16:12:12
【问题描述】:

我运行这个命令

select 'Conceição do Almeida'='Conceicao do Almeida';

等号左边是西班牙文,另一边是英文。

但是,它返回 1 作为结果!

显然,这是完全不同的两个字符串!

mysql设置西班牙语等于英语吗?

顺便说一句

character_set_client        utf8mb4
character_set_connection    utf8mb4
character_set_database      utf8
character_set_filesystem    binary
character_set_results       utf8mb4
character_set_server        utf8
character_set_system        utf8

所以我认为这与编码错误无关。

【问题讨论】:

  • 比较取决于您使用的排序规则。
  • 吹毛求疵:这不是“英语”,它只是非重音字符,也就是“纯 ASCII”。

标签: mysql utf-8 character-encoding


【解决方案1】:

比较取决于您使用的排序规则。

this SQLFiddle example

因此,要么更改表排序规则,要么在查询中使用特定排序规则,例如 utf8_bin

【讨论】:

  • 字符串的排序规则或类型(普通或二进制)。在二进制字符串的情况下,比较是基于字节进行的,而不是基于字符的,就像使用了二进制排序规则一样。您甚至可以通过二进制运算符强制比较使用二进制字符串:dev.mysql.com/doc/refman/5.7/en/charset-binary-op.html
猜你喜欢
  • 2017-01-05
  • 1970-01-01
  • 2021-07-24
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多