Fre*_*rik 10 mysql sorting character
我正在尝试使用asc或desc对列表进行排序 - 具体取决于用户选择的内容.在列表中我有瑞典字符ÅÄÖ,它就在这里问题出现了.我有以下列表:
(First list)
Stängd
Stängd
Öppen
Krävs ej
Krävs ej
Run Code Online (Sandbox Code Playgroud)
(代表;Stängd=已关闭,Öppen=已打开,Krävssj=不需要)
列表应该排序 - 取决于用户选择的内容;
Öppen
Stängd
Stängd
Krävs ej
Krävs ej
Run Code Online (Sandbox Code Playgroud)
要么
Krävs ej
Krävs ej
Stängd
Stängd
Öppen
Run Code Online (Sandbox Code Playgroud)
但现在是第一个列表出现了.所以问题是"Ö" - 字符.我的数据库和值所在的字段具有排序规则utf8_general_ci,因此这不是问题所在.字符"Ö"在两个数据库中都是正确的(通过PHPMyAdmin查找)并在打印出来时输出正确.
我的代码看起来像这样:
$querystr = "
SELECT wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = '$sort_by'
AND wposts.post_type = 'sida'
AND wposts.post_status = 'publish'
ORDER BY wpostmeta.meta_value $sort_order";
Run Code Online (Sandbox Code Playgroud)
这怎么出现,我该如何解决?
Pek*_*ica 25
我的数据库和值所在的字段具有整理utf8_general_ci,因此这不是问题
但它是.:)不同的排序规则有不同的排序顺序,以及它们如何解释变音符号的不同方式.
utf8_general_ci将Ö与... 排序O.试试吧utf8_swedish_ci.这将具有正确的排序顺序,其中(IIRC)是ÄAÖ字母表的末尾.
有关背景信息,请参见9.1.7.8.整理效果的例子