我有一个多语言平台。我需要它根据 mysql 连接的首选排序规则对结果进行排序。不是通过mysql结构整理的。
这是否可以在不重写每个查询的情况下完成?我不想在每个查询中都以 order by name asc collate utf8_swedish_ci
示例结束。
set name utf8 collate 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/