Quando você está executando um SQL UPDATE em várias linhas no MySQL, parece que você pode colocar aspas simples em cada valor ou não e isso produzirá os mesmos resultados.
Existe uma razão para usar aspas simples em uma consulta UPDATE se não usar aspas simples produzir os mesmos resultados? Existe alguma diferença?
Exemplo sem aspas:
UPDATE superuser
SET poop = rainbows
WHERE id IN (1, 2, 3);
Exemplo com aspas:
UPDATE superuser
SET poop = rainbows
WHERE id IN ('1', '2', '3');
Responder1
Em geral, cite todas as strings e retire aspas dos números. Seu SQL, entretanto, será interrompido se houver aspas simples na string, portanto, escape das aspas simples dobrando-as.
SELECT * FROM superuser WHERE poop = 'johnny''s'
-- note how the string [johnny's] have double quotes
Por outro lado, citar números em SQL é ruim. Embora o SQL tente implicitamente converter esses valores, isso pode levar a resultados indesejados. Digamos que você tenha um tipo CHAR e o alimente com um unquoted 1
em vez de um quoted '1'
, você obteria o caractere na 1ª posição do conjunto de caracteres em vez de um caractere '1' real.