MySQL doesn't yet support subquery
Столкнулся с задачей выполнить LIMIT в подзапросе, но это привело к ошибке: Error: #1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'. Неужели нет способа это сделать? Оказывается есть..
Исходный запрос:
1 2 3 4 5 |
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 и вернуть результат подзапроса в виде переменной, вот так:
1 2 3 4 5 6 7 |
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 |
теперь все работает.
Author: | Tags: /
| Rating:
2 comments.
Write a comment