Was ist die richtige SQL-Syntax, um einen Wert mit einem Apostroph einzufügen?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
Ich erhalte immer wieder eine Fehlermeldung, da ich denke, dass der Apostroph nach dem O das End-Tag für den Wert ist.
sql
sql-update
sql-insert
Leora
quelle
quelle
Antworten:
Entfliehen Sie dem Apostroph (dh verdoppeln Sie das einfache Anführungszeichen) in Ihrem SQL:
Gleiches gilt für SELECT-Abfragen:
Das Apostroph oder einfache Anführungszeichen ist ein Sonderzeichen in SQL, das den Anfang und das Ende von Zeichenfolgendaten angibt. Dies bedeutet, dass Sie
escape
das Sonderzeichen benötigen, um es als Teil Ihrer Literalzeichenfolgendaten zu verwenden. Mit einem einfachen Angebot wird dies normalerweise erreicht, indem Sie Ihr Angebot verdoppeln. (Zwei einfache Anführungszeichen, kein doppeltes Anführungszeichen anstelle eines einfachen Anführungszeichens.)Hinweis : Sie sollten sich immer nur über dieses Problem Gedanken machen, wenn Sie Daten manuell über eine unformatierte SQL-Schnittstelle bearbeiten, da das Schreiben von Abfragen außerhalb von Entwicklung und Test selten vorkommt. Im Code gibt es Techniken und Frameworks (abhängig von Ihrem Stack), die dafür sorgen, dass Sonderzeichen, SQL-Injection usw. nicht berücksichtigt werden .
quelle
Sie müssen nur die einfachen Anführungszeichen verdoppeln ...
quelle
Sie müssen dem Apostroph entkommen. In T-SQL ist dies mit einem doppelten Apostroph, sodass Ihre
insert
Aussage wie folgt lautet :quelle
Values
muss in geschweiften Klammern stehen (was dann die gleiche Antwort wie die von @JustinNiessner macht)Weil ein einfaches Anführungszeichen verwendet wird, um den Anfang und das Ende einer Zeichenfolge anzugeben; du musst ihm entkommen.
Die kurze Antwort besteht darin, zwei einfache Anführungszeichen zu verwenden
''
, damit eine SQL-Datenbank den Wert als speichert'
.Sehen Sie sich an, wie Sie mit REPLACE eingehende Werte bereinigen können:
Sie möchten nach ihnen suchen
''''
und sie ersetzen, wenn sie in der Zeichenfolge vorhanden sind''''''
, um dem einzelnen einfachen Anführungszeichen zu entgehen.quelle
Eduffy hatte eine gute Idee . Er hat es gerade in seinem Codebeispiel rückwärts bekommen. Entweder in JavaScript oder in SQLite können Sie den Apostroph durch das Akzent-Symbol ersetzen.
Er (ich bin mir aus Versehen sicher) hat das Akzent-Symbol als Trennzeichen für die Zeichenfolge gesetzt, anstatt das Apostroph in O'Brian zu ersetzen. Dies ist in der Tat in den meisten Fällen eine äußerst einfache Lösung.
quelle
Das Apostrophzeichen kann durch Aufrufen der CHAR- Funktion mit dem ASCII-Tabellensuchwert 39 des Apostrophs eingefügt werden . Die Zeichenfolgenwerte können dann zusammen mit einem Verkettungsoperator verkettet werden .
quelle
Das folgende SQL veranschaulicht diese Funktionalität.
Ergebnisse
quelle
Verwenden Sie doppelte Anführungszeichen um die Werte.
quelle
He said, "Don't!"
einfache Anführungszeichen und / oder doppelte Anführungszeichen. Dies ist möglich:'He said, "Don''t!"'
oder"He said, ""Don't!"""
. Wenn Sie einer seit langem bestehenden Frage mit akzeptierten Antworten eine neue Antwort hinzufügen, müssen Sie neue, vollständige Informationen bereitstellen. Die Verwendung von doppelten Anführungszeichen ist neu - jedoch auf einige wenige DBMS beschränkt. Sie sollten sich Mühe geben, mindestens einen von denen zu identifizieren, die sie akzeptieren.Verwenden Sie stattdessen einen Backtick (auf der ~ -Taste).
quelle