Corrigindo a sintaxe da instrução DELETE do MySQL com LIMIT
Ao tentar excluir um intervalo de linhas de uma tabela MySQL usando uma instrução DELETE com uma cláusula LIMIT, você poderá encontrar um erro se a sintaxe estiver incorreta. Este erro normalmente indica que há um problema com a sintaxe usada para especificar o limite.
O problema na consulta fornecida é que você não pode especificar um deslocamento na cláusula LIMIT de uma instrução DELETE. A sintaxe para usar a cláusula LIMIT em uma instrução DELETE é LIMIT
Para resolver esse problema, você precisa reescrever sua consulta para especificar as linhas a serem excluídas mais precisamente. Uma maneira de fazer isso é usar a cláusula IN para selecionar os IDs das linhas que você deseja excluir e, em seguida, usar esses IDs para filtrar as linhas na instrução DELETE.
Aqui está um exemplo de como você pode reescrever sua consulta:
DELETE FROM `chat_messages`
WHERE `id` IN (
SELECT `id` FROM (
SELECT `id` FROM `chat_messages`
ORDER BY `timestamp` DESC
LIMIT 20, 50
) AS `x`
)
Nesta consulta, primeiro usamos uma subconsulta para selecionar os IDs das linhas que queremos excluir. Em seguida, usamos a cláusula IN na instrução DELETE principal para filtrar as linhas com base nesses IDs, resultando na exclusão do intervalo de linhas desejado.
É importante observar que pode ser necessário fazer ajustes em a consulta com base na estrutura específica da sua tabela e no comportamento desejado.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3