SQLiteで少し躓いた(Python)
SQL真面目に勉強したほうがいいかなとか思いつつ……
DBに突っ込んだ表から、あるカラムのレコードを検索して合致するカラムを取り出そうとするSQL文を Pythonで記述してみた。
[python] import sqlite3 conn = sqlite3.connect("./MyDB.db") c = conn.cursor string = "文章" c.execute(u"select MyRecord1 from MyTable where MyRecord2 = %s" % string) for row in c: print row[0] [/python]こんなSQL文を書いたらこんなエラーが返って来ました。
[bash] sqlite3.OperationalError: no such column: 文章 [/bash]もちろん、データベースの中に"文章"が含まれることは確認しています。
何がいけないのか10分ぐらい悩んでから、上のSQL文を以下のように書き換えると上手くいきました。
[python] c.execute(u"select MyRecord1 from MyTable where MyRecord2 = '%s'" % string) [/python]要するに、ダブルクォーテーションの中でのSQL文は、他の環境で実際に記述するように書かなければいけない模様。帰ってくる値はselectで指定したレコードの順番でタプルに入って返ってくるみたいです。
この書き方慣れない……