0

我在 php 函数(wordpress)中有一个简单的 mysql 查询。

该函数可以正常工作,除非结果是非英文字符(或非拉丁文),例如希伯来语、阿拉伯文、中文、日文......

问题是,如果我删除ORDER BYLIMIT命令,查询就可以正常工作。(参见代码中的注释)。

 $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()功能似乎也不是问题 ..

看起来这是ORDERand / or的特定问题LIMIT

这些命令失败有什么原因吗?有解决办法吗?

我试图只删除(注释掉)其中的一个,但它仍然失败。只有删除两者才能工作。

更新我

我忘了提

$hide_underscore ='HAVING meta_key NOT LIKE "\_%"'

或者

$hide_underscore =''

4

0 回答 0