У меня простой запрос mysql в php-функции (wordpress).
Функция работает без проблем, за исключением случаев, когда результат с неанглийскими символами (или не латинскими), например, иврит, арабский, китайский, японский …
Дело в том, что запрос работает очень хорошо, если я удаляю команды 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
и / или LIMIT
.
Есть ли причина, по которой просто эти команды не работают? есть ли решение?
Я попытался удалить (прокомментировать) только ОДИН из пары, но все равно не получается. только удаление обоих будет работать.
ОБНОВЛЕНИЕ I
я забыл упомянуть
$hide_underscore ='HAVING meta_key NOT LIKE "\_%"'
или
$hide_underscore =''