Исправить синтаксическую ошибку MySQL запроса (LIMIT) - PullRequest
0 голосов
/ 27 августа 2018

У меня есть таблица 'tbl_content'

Когда я запускаю следующий запрос, я вижу 11 записей / данных

SELECT ContentID, CategoryID, Home, Inner
FROM tbl_content
WHERE CategoryID = 1 AND Inner = 2
ORDER BY ContentID DESC

Когда я запускаю следующий запрос, я вижу первые 4 записи / данные

SELECT ContentID, CategoryID, Home, Inner
FROM tbl_content
WHERE CategoryID = 1 AND Inner = 2
ORDER BY ContentID DESC LIMIT 7, 10

Я хочу обновить значение оставшихся первых 4 записей / данных. Но, к сожалению, это вызывает ошибку.

UPDATE tbl_content
SET Inner = 1
WHERE CategoryID = 1 AND Inner = 2
ORDER BY ContentID DESC LIMIT 7, 10

Может ли кто-нибудь любезно дать какое-либо решение?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

попробуйте это.

UPDATE tbl_content SET Inner=1 WHERE id IN(SELECT ContentId FROM (SELECT ContentID, CategoryID, Home, Inner FROM tbl_content WHERE CategoryID=1 AND Inner=2 ORDER BY ContentID DESC LIMIT 7, 10));
0 голосов
/ 27 августа 2018

Вы можете попробовать использовать предложение IN для подбора с лимитом

UPDATE tbl_content SET Inner=1 
WHERE CategoryID=1 AND Inner=2 
AND ContentID  IN ( 
 select contentID from (
  select ContentID  
  from  tbl_content 
  order by ORDER BY ContentID DESC LIMIT 7, 10 ) t

)

или объединение

UPDATE tbl_content c 
INNER JOIN (
  select ContentID  
  from  tbl_content 
  order by ORDER BY ContentID DESC LIMIT 7, 10 
) t  on t.ContentID = c.ContentID
SET c.Inner=1 
WHERE c.CategoryID=1 AND c.Inner=2 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...