Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: MySQL - IN и LIMIT
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » MySQL - IN и LIMIT

Страниц (1): [1]
 

1. Грачи прилетели - 25 Июня, 2019 - 15:05:03 - перейти к сообщению
Добрый день!

Прошу помощи: При выполнении запроса с вложенным запросом получил ошибку
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Поиск в интернете натолкнул на решение - вложенный запрос надо обернуть в еще один SELECT.

Не помогло, но могу ошибаться.

Задача - вывести из базы 4 строки, где ID одной из них будет равна 7, а остальные рандомно любые. Делаю так:


CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  
  3. SELECT * FROM `table_1` WHERE id=7 AND id IN ( SELECT * FROM (SELECT id FROM table_1 WHERE id !=7 LIMIT 3) AS `id`)
  4.  
  5.  



Прошу помощи.

Спасибо!
(Добавление)



P`S - Вот так сработало, но верно ли...

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  
  3. SELECT * FROM `table_1` WHERE id IN ( SELECT * FROM ( SELECT id FROM `table_1` WHERE `id` !=7 ORDER BY RAND() LIMIT 3 ) AS `id` ) OR id=7
  4.  
  5.  
2. Мелкий - 25 Июня, 2019 - 15:48:38 - перейти к сообщению
ну если сортировать всё, то тогда уж сразу
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT ... FROM tablename ORDER BY id = 7, rand() LIMIT 4;

(как обычно может быть надо сделать desc)

 

Powered by ExBB FM 1.0 RC1