我在php函数(wordpress)中有一个简单的mysql查询。
该功能没有问题,除非结果是非英文字符(或非拉丁文),例如希伯来语,阿拉伯语,中文,日语......
问题是,如果删除ORDER BY
和LIMIT
命令,查询就可以了。 (参见代码中的注释)。
$keys = $wpdb->get_col( "
SELECT meta_key
FROM $wpdb->postmeta
GROUP BY meta_key
" . $hide_underscore . "
/* ORDER BY meta_key
LIMIT $limit */
" );
if ( $keys )
natcasesort($keys);
密钥本身(meta_key)存在于DB中,并且其他函数或查询使用它们没有任何问题(因此它不是语言环境,数据库编码或字符集问题..){{1功能似乎不是问题..
看起来这是natcasesort()
和/或ORDER
的具体问题。
有没有理由说这些命令失败了?有解决方案吗?
我曾尝试删除(注释掉)其中一对,但仍然失败。只删除它们都可以。
更新我
我忘了提及
LIMIT
或
$hide_underscore ='HAVING meta_key NOT LIKE "\_%"'