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に問題なく存在し、他の関数やクエリはそれらを使用しても問題ありません(したがって、ロケール、DBエンコーディング、または文字セットの問題ではありません)。また、natcasesort()
関数はそうではないようです。問題 ..
ORDER
および/またはの特定の問題のようLIMIT
です。
それらのコマンドだけが失敗する理由はありますか?解決策はありますか?
ペアの1つだけを削除(コメントアウト)しようとしましたが、それでも失敗します。両方を削除するだけで機能します。
更新I
言及するのを忘れた
$hide_underscore ='HAVING meta_key NOT LIKE "\_%"'
また
$hide_underscore =''