Sollten einfache Anführungszeichen für MySQL-UPDATES mit mehreren Zeilen verwendet werden?

Sollten einfache Anführungszeichen für MySQL-UPDATES mit mehreren Zeilen verwendet werden?

Wenn Sie in MySQL ein SQL-UPDATE für mehrere Zeilen durchführen, können Sie anscheinend jeden Wert in einfache Anführungszeichen setzen oder nicht und es werden dieselben 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 dieselben Ergebnisse liefert? 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');

Antwort1

Setzen Sie grundsätzlich alle Zeichenfolgen in Anführungszeichen und entfernen Sie die Anführungszeichen bei Zahlen. Ihr SQL wird jedoch unterbrochen, wenn die Zeichenfolge einfache Anführungszeichen enthält. Entkommen Sie daher den einfachen Anführungszeichen, indem Sie sie verdoppeln.

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

Andererseits ist das Anführen von Zahlen in SQL schlecht. Obwohl SQL implizit versucht, diese Werte zu konvertieren, kann dies zu unerwünschten Ergebnissen führen. Angenommen, Sie haben einen CHAR-Typ und geben ihm ein nicht in Anführungszeichen gesetztes , 1statt eines in Anführungszeichen gesetzten '1', dann erhalten Sie das Zeichen an der ersten Position des Zeichensatzes statt eines tatsächlichen Zeichens „1“.

verwandte Informationen