Sollten einfache Anführungszeichen für mehrzeilige MySQL-UPDATEs verwendet werden?

574
THE DOCTOR

Wenn Sie ein SQL-UPDATE für mehrere Zeilen in MySQL ausführen, scheint es, als könnten Sie entweder einzelne Anführungszeichen um jeden Wert setzen oder nicht, und es werden die gleichen Ergebnisse erzielt.

Gibt es einen Grund für die Verwendung von einfachen Anführungszeichen in einer UPDATE-Abfrage, wenn die Verwendung von einfachen Anführungszeichen zu den gleichen Ergebnissen führt? Gibt es überhaupt einen Unterschied?

Beispiel ohne Anführungszeichen:

UPDATE superuser SET poop = rainbows WHERE id IN (1, 2, 3); 

Beispiel mit Anführungszeichen:

UPDATE superuser SET poop = rainbows WHERE id IN ('1', '2', '3'); 
0
Fragen Sie den Unterschied zwischen den beiden Abfragen? Ramhound vor 8 Jahren 0
@ Ramhound - Ja, ich frage, ob es einen Unterschied gibt. Vielen Dank. THE DOCTOR vor 8 Jahren 0
Ich gehe davon aus, dass Sie jede Abfrage ausgeführt haben und geben Sie die Ergebnisse zurück, bevor Sie diese Frage stellen. * Schalten Sie einfach das UPDATE auf SELECT um und entfernen Sie das SET. * Ramhound vor 8 Jahren 0

1 Antwort auf die Frage

0
Jerome Indefenzo

Zitieren Sie im Allgemeinen alle Zeichenfolgen und unquote Zahlen. Ihr SQL bricht jedoch ab, wenn die Zeichenfolge einfache Anführungszeichen enthält. Entfernen Sie daher das einfache Anführungszeichen, indem Sie es verdoppeln.

SELECT * FROM superuser WHERE poop = 'johnny''s' -- note how the string [johnny's] have double quotes 

Andererseits ist es falsch, Zahlen in SQL zu zitieren. Obwohl SQL implizit versucht, diese Werte zu konvertieren, kann dies zu unerwünschten Ergebnissen führen. Angenommen, Sie haben einen CHAR-Typ, und Sie geben einen nicht 1notierten Anführungszeichen ein '1'. Sie würden den Charakter an der ersten Stelle des Zeichensatzes anstelle eines tatsächlichen '1'-Zeichens anzeigen.