php - 通过连接排序规则而不是结构排序规则对 mysql 结果进行排序

标签 php mysql character-encoding collation

我有一个多语言平台。我需要它根据 mysql 连接的首选排序规则对结果进行排序。不是通过mysql结构整理的。

这是否可以在不重写每个查询的情况下完成?我不想在每个查询中都以 order by name asc collat​​e utf8_swedish_ci 示例结束。

set name utf8 collat​​e utf8_swedish_ci 不能像 utf8_general_ci 那样将 å 放在 b 之前。

最佳答案

SET NAMES 内容处理用于查询和查询元数据(例如列名称)的字符集。它对表中数据的处理没有影响。看这里。 http://dev.mysql.com/doc/refman/5.6/en/charset-connection.html

您询问是否可以使用特定的排序规则(可能是用户首选项设置)来对结果进行排序而不重写查询。答案是否定的。

这部分是因为在构造或更新索引时排序规则被绑定(bind)到索引中。这对于性能来说非常有好处,但不幸的是,这不适用于您的泛欧洲多排序规则应用程序。

关于php - 通过连接排序规则而不是结构排序规则对 mysql 结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25829070/

相关文章:

mysql - 使用 View 从多个表中获取数据

php - 根据ID将数据库表数据拆分到不同的数组中

php - 我将如何使用 PHP 连接到 mysql 数据库?

.net - RTF 中的欧元符号

php - 使用 PHP 检测服务器区域设置编码

php - 正确使用 PHP MYSQL 数组

php - 将 PHP 数组写入文件生成二进制文件而不是纯文本

php - 我的客户的部分信息被插入到数据库中,而有些则没有。

php - 将变量 javascript 传递到 php

java - 读取java中的特殊字符