名前O'Neilという名前のレコードを選択したいのですが、どのようにInformixで行うことができますか。一重引用符で文字列を選択するレコード-informix
select * from name_table where lastname = 'O'Neil' - >動作しません。
名前O'Neilという名前のレコードを選択したいのですが、どのようにInformixで行うことができますか。一重引用符で文字列を選択するレコード-informix
select * from name_table where lastname = 'O'Neil' - >動作しません。
あなたは別の単一引用符と単一引用符をエスケープする必要があります。Informixので
select * from name_table where lastname = 'O''Neil';
、あなたは一般的に2つの選択肢があります。
標準SQL技術(described、Michal Niklas)は常に機能し、単純で推奨されるソリューションです。すべての文字列内の単一引用符の出現をダブルアップされています
SELECT * FROM Name_Table WHERE LastName = 'O'Neill';
お使いの環境でDELIMIDENTを設定していない限り、作品別の技術は、文字列を二重引用符を使用することです:
SELECT * FROM Name_Table WHERE LastName = "O'Neill";
の場合区切られた識別子がDELIMIDENTによって有効にされている場合、これは異なる意味を持ちます。 DBMSはテーブル内の "O'Neill"という列を探します(文字列ではなく識別子であるため)。技術変化の命題と
SELECT * FROM QuoteTable WHERE Quote = 'He said, "Don''t"!';
SELECT * FROM QuoteTable WHERE Quote = "He said, ""Don't""!';
私の第二の答え:あなたは、文字列の両方に引用符を持っている場合は
は、あなたは注意する必要があります。
あなたはどのテクノロジーを使用しているのかわかりませんが、PreparedStatementsを使用できます。 Jythonの例(JDBCドライバを使用することができますPythonの):
db = DriverManager.getConnection(jdbc_url, usr, passwd)
pstm = db.prepareStatement("select * from name_table where lastname=?")
pstm.setString(1, "O'Neil")
rs = pstm.executeQuery()
while (rs.next()):
print('[%s]' % (rs.getString(1)))
あなたはPreparedStatementのは、プレースホルダとして?
を使用して、あなたがsetString()
メソッドを使用して、それを埋める必要があります見ての通り
同様の手法は、ODBCやその他の技術のユーザーになることができます。