Столкнулся с задачей выполнить LIMIT в подзапросе, но это привело к ошибке: Error: #1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'. Неужели нет способа это сделать? Оказывается есть..
Исходный запрос:
SELECT DISTINCT `post_id` FROM `wp_postmeta` WHERE `post_id` IN ( SELECT `ID` FROM `wp_posts` ORDER BY `ID` DESC LIMIT 50 ) AND `meta_value` LIKE "http://site.com/%" LIMIT 10
приводит к ошибке:#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Для того, чтобы запрос отработал, нам необходимо обернуть подзапрос в ещё один SELECT и вернуть результат подзапроса в виде переменной, вот так:
SELECT DISTINCT `post_id` FROM `wp_postmeta` WHERE `post_id` IN ( SELECT * FROM ( SELECT `ID` FROM `wp_posts` ORDER BY `ID` DESC LIMIT 50 ) as `id` ) AND `meta_value` LIKE "http://site.com/%" LIMIT 10
теперь все работает.
Комментарии (2)
братан ты спаситель. 6 часов решал уравнение по группировке и выдачи и в итоге нашел решение. может кто столкнется с подобным:
Заказы пользователей Интернет магазина, один ордер на группу товаров
id id_user id_product order
40 7 154 24600048030817
39 7 153 24600048030817
38 7 143 1245048030817
37 7 123 2540048030817
Нужно сформировать запрос по номеру заказа и ограничить количество записей, но что бы в результат попадали записи всего заказа
SELECT * FROM `_diamondcms_shop_order` WHERE `order` IN (
SELECT * FROM (
SELECT `order` FROM `_diamondcms_shop_order` GROUP BY `order` LIMIT 2
) as `order`
)
AND `id_user`='7' ORDER BY CAST(`id` as unsigned) DESC
Спасибо!
Спасибо Вам большое!