Как сортировать сообщения с meta_key, используя пользовательский запрос MySQL в WordPress?

У меня возникла ситуация, когда я должен отсортировать сообщения по названию штата в алфавитном порядке (A-Z). Я знаю, что мы можем сделать это с помощью meta_query, но в моем случае я должен сделать это с помощью пользовательского запроса MySQL.

Я старался :-

$quotes = $wpdb->get_results("select * from wp_akph_posts LEFT JOIN wp_akph_postmeta ON wp_akph_posts.ID=wp_akph_postmeta.post_id where wp_akph_posts.post_type='quote' Order by wp_akph_postmeta.meta_value ASC");

и я получил результаты как Null сначала (meta_key), потому что он оставил соединение.

Я хочу, чтобы где-нибудь, TX был сверху не NULL или любым числом. Просто строка.

Любые предложения?

0

Решение

Вы можете вызвать ORDER BY положить NULL последний с помощью - перед именем столбца в выписке. Если вам нужно использовать SQL вместо WP_Query Я все еще предлагаю использовать $wpdb->prefix и другие встроенные значения имен таблиц на случай, если вы используете это на сайте с другим префиксом.

global $wpdb;
$sql = <<<SQL
SELECT *
FROM {$wpdb->posts} p
LEFT JOIN {$wpdb->postmeta} pm ON p.ID=pm.post_id
WHERE p.post_type='quote'
ORDER BY -pm.meta_value ASC
SQL;
$quotes = $wpdb->get_results( $sql );

Эта функция MySQL плохо документирована, но вы можете найти информацию Вот а также в комментариях к документации.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]