アポストロフィを含む値を挿入するための正しい SQL 構文は何ですか?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
O の後のアポストロフィが値の終了タグだと思っているため、エラーが発生し続けます。
ベストアンサー1
SQL 内のアポストロフィをエスケープします (つまり、一重引用符を二重にします)。
INSERT INTO Person
(First, Last)
VALUES
('Joe', 'O''Brien')
/\
right here
同じことが SELECT クエリにも当てはまります。
SELECT First, Last FROM Person WHERE Last = 'O''Brien'
アポストロフィ、または一重引用符は、SQL の特殊文字で、文字列データの始まりと終わりを指定します。つまり、これをリテラル文字列データの一部として使用するには、escape
特殊文字を使用する必要があります。一重引用符の場合、これは通常、引用符を二重にすることで実現されます。(一重引用符の代わりに二重引用符を使用するのではなく、一重引用符を 2 つ使用します。)
注: 開発やテスト以外でクエリを書くことは稀なので、生のSQLインターフェースを介して手動でデータを編集する場合にのみ、この問題を心配する必要があります。コードには、特殊文字のエスケープを処理するテクニックとフレームワークがあります(スタックによって異なります)。SQLインジェクションなど