done is better than perfect

自分が学んだことや、作成したプログラムの記事を書きます。すべての記載は他に定める場合を除き個人的なものです。

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で指定したレコードの順番でタプルに入って返ってくるみたいです。

この書き方慣れない……