У меня есть тип персонализированного типа аренды. В квартирах есть цены, цена хранится в таблице аренды. На арендной плате также есть мета-ключ «признакам». Он имеет значение «on» или «off».Как заказать по-разному мета-ключи в WordPress
Что мне нужно сделать, перечислите арендную плату так, чтобы она появилась на первом месте, а отсортированные по дате, а затем перечислите другую арендную плату, а остальные арендные платы, которые не указаны, должны быть заказаны по цене.
Это мой фактический запрос:
SELECT SQL_CALC_FOUND_ROWS wp_posts.*,
FROM wp_posts
INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id)
INNER JOIN wp_st_rental as tb ON wp_posts.ID = tb.post_id
WHERE 1=1 AND
(wp_posts.ID NOT IN (SELECT object_id FROM wp_term_relationships
WHERE term_taxonomy_id IN (253))) AND
(wp_postmeta.meta_key = 'is_featured') AND
wp_posts.post_type = 'st_rental' AND ((wp_posts.post_status = 'publish'))
AND wp_posts.ID IN (SELECT post_id FROM wp_st_location_relationships
WHERE 1=1 AND post_type IN ('st_rental')) GROUP BY wp_posts.ID
ORDER BY wp_postmeta.meta_value DESC, CAST(st_rental_price as DECIMAL) ASC
LIMIT 0, 350
В этом фактическом запросе я мог управлять, чтобы получить признаки проката первой, а затем и другие, но все они отсортированы по цене. Это должно быть изменено так, чтобы выбранные были упорядочены по дате.
Это было мое окончательное решение: случай, когда wp_postmeta.meta_value = 'на' THEN wp_posts.post_date END DESC, СЛУЧАЙ, КОГДА wp_postmeta .meta_value = 'off' THEN CAST (act.price as DECIMAL) END ASC "; – Eva