によると:http ://www.sqlite.org/draft/lang_keywords.html
SQLite3は、次の場合に期待することを実行します。
select "foo" from bar;
ただし、識別子が存在しない場合:
select "non-existant" from bar;
引用符で囲まれたテキストを文字列として扱うことは(古いバージョンとの互換性のために)フォールバックします。
このような引用符で囲まれた列を使用してクエリを動的に作成しているため、これは問題を引き起こします。後者の動作では、エラーをスローする代わりに意味のない結果が返されます。
私はPythonコードを作成しており、PEP-249 PythonデータベースAPI仕様v2.0モジュールをラップするモジュールを使用しているため、必要に応じてデータベース固有のハックを行うことができます。
私たちのバックエンドデータベースは変更される可能性があります(実際、ローカルテストと本番環境ではある時点でおそらく異なるでしょう)ので、可能であればSQL自体を標準のままにしておきたいと思います。
私ができる方法はありますか:
- この動作を停止/オフにします
- これが発生したことを簡単に/確実に検出します(そして、私自身の例外を発生させます)
- どういうわけかこれを回避します(SQLの「」を非標準の同等のものに置き換えることは、プログラムで安全な方法で簡単に行うことができるとは思いません)