【问题标题】:What Collation is the best for data type INT in MySQL?MySQL 中数据类型 INT 的最佳排序规则是什么?
【发布时间】:2010-12-28 07:01:03
【问题描述】:

当一个字段是INT(数据类型)时,我应该在MySQL中选择什么作为排序规则?

【问题讨论】:

  • 如果我太天真了,请原谅我,但排序规则不仅仅针对字符数据(以确定用于对字符进行排序的规则集)吗?

标签: sql mysql database types


【解决方案1】:

排序规则影响 字符串 排序。它对数值数据类型没有任何影响。

但是,它可能会影响嵌入在字符串中的数字的排序方式。但这对 INT 等数值数据类型仍然没有影响。

【讨论】:

  • 你是对的 - 只是补充一下:如果你处理多语言页面并且有列表要排序,例如波兰语,您必须强制进行适当的排序以进行排序,并且:)您使用例如INT 列作为排序向量,那么你最好有排序规则集(例如到 UTF8),否则你会得到 SQL 错误,例如:“语法错误或访问冲突:1253 COLLATION 'utf8_polish_ci' is not valid for CHARACTER SET 'latin1'”
  • 您可以在比较“之后”的 SELECT 中按字段大小写强制排序:SELECT [...] WHERE last_name = 'Saldana' COLLATE utf8_unicode_ci AND age = 37;如果您在该句子的末尾添加 COLLATE,则排序规则将应用于年龄字段,从而触发关于“latin1”的(奇怪)错误。试试看:sqlfiddle.com/#!9/491fd5/5
【解决方案2】:

据我所知,您只能为字符串类型指定排序规则(或字符集),即。类型 VARCHAR、CHAR、ENUM、SET 和 TEXT 类型(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)

【讨论】:

    猜你喜欢
    • 2011-07-28
    • 2011-10-22
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 2011-10-09
    相关资源
    最近更新 更多