Я много раз искал ответ на этот вопрос (на SO и в другом месте), но не нашел ответа, который действительно соответствует моим потребностям (если он там, я заранее извиняюсь).
У меня есть запрос с использованием PHP, который возвращает массив из базы данных (WordPress). В основном я хочу посмотреть значение столбца, а затем LIMIT на основе этого значения. Вот массив, который возвращается для лучшей идеи:
http://pastebin.com/AC043qfh
В запросе вы заметите, что значение для повторений post_parent для нескольких возвращенных массивов. То, что я хочу сделать, – это сделать LIMIT до 3 на основе значения post_parent, например, я хочу 3 записи для post_parent 79, 87, 100 и т. Д.
Я не хорошо разбираюсь (см. Совсем) в MySQL-запросах, но это то, что я должен получить для этого массива:
SELECT DISTINCT ID, guid, post_parent, post_title FROM $wpdb->posts p WHERE p.post_type = 'attachment' AND p.post_mime_type LIKE 'image/%' AND p.post_status = 'inherit' AND p.post_parent IN (SELECT object_id FROM $term_relationships WHERE term_taxonomy_id = $post_term)
Я пробовал использовать GROUP BY, но это не привело меня к тому, что я хотел. Любая помощь приветствуется.
РЕДАКТИРОВАТЬ Только для уточнения, это те результаты, которые я хочу: http://pastebin.com/pWXdUuXv
Это может сделать трюк: (Я предполагаю, что идентификатор уникален, если не заменить что-то, что есть)
SELECT p.ID, guid, post_parent, post_title FROM ( SELECT a.ID as ID, COUNT(*) as rank FROM ( SELECT ID, post_parent FROM $wpdb->posts WHERE post_type = 'attachment' AND post_mime_type LIKE 'image/%' AND post_status = 'inherit' ) AS a JOIN ( SELECT ID, post_parent FROM $wpdb->posts WHERE post_type = 'attachment' AND post_mime_type LIKE 'image/%' AND post_status = 'inherit' ) AS b ON b.ID <= a.ID AND b.post_parent = a.post_parent GROUP BY a.ID ) AS r JOIN $wpdb->posts p ON r.ID = p.ID AND r.rank <= 3 WHERE p.post_parent IN ( SELECT object_id FROM $term_relationships WHERE term_taxonomy_id = $post_term) GROUP BY p.ID ;
EDIT: попытайтесь включить категорию в ранг, чтобы она действительно работала.
Задание условий дважды немного уродливое, но я не видел в нем легкого пути.