我在 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)存在于数据库中就好了,其他功能或查询使用它们没有任何问题(所以它不是语言环境、数据库编码或字符集问题..)而且该natcasesort()
功能似乎也不是问题 ..
看起来这是ORDER
and / or的特定问题LIMIT
。
这些命令失败有什么原因吗?有解决办法吗?
我试图只删除(注释掉)其中的一个,但它仍然失败。只有删除两者才能工作。
更新我
我忘了提
$hide_underscore ='HAVING meta_key NOT LIKE "\_%"'
或者
$hide_underscore =''