1

SQLite ( sqlite3Python 2.7 のモジュール) でのエンコードに問題があります。(text_number int, word text) という 2 つの列を持つテーブルがあります。数字、英語、wordロシア語があります。

word = search_word であるテーブル内のすべての文字列を検索する必要があります。

search_word が数値の場合、問題はありません。

search_word = '146'
lenta_u_w = c.execute('SELECT * FROM lenta WHERE word = ' + search_word)
for w in lenta_u_w :
    print w

のようなものを与えます(361, u'146')

ただし、他の種類の文字は機能しません。

search_word = u'android'
lenta_u_w = c.execute('SELECT * FROM lenta WHERE word = ' + search_word)
for w in lenta_u_w :
    print w
>>>lenta_u_w = c.execute('SELECT * FROM lenta WHERE word = ' + search_word)
OperationalError: no such column: android

多くのバージョンのデコードなどを試しましたが、何も役に立ちません。

4

1 に答える 1

1

クエリを作成して実行するときにパラメーターを使用すると、適切な引用とエスケープが行われます。

c.execute('SELECT * FROM lenta WHERE word = ?', (search_word,))

詳細については、sqlite3 パッケージのクラスのドキュメントを参照してください。Cursor

于 2012-12-25T16:57:29.283 に答える