9

これはうまくいきます:

 cc.execute("select * from books where name like '%oo%'")

しかし、2 番目の引数が渡された場合:

cursor.execute("select * from books where name like '%oo%' OFFSET % LIMIT %", (0,1))

Psycopg エラー:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: tuple index out of range

このエラーを回避するにはどうすればよいですか?

4

1 に答える 1

14

まず、リテラル%%を挿入するために使用する必要があります。そうしないと、ライブラリはすべてをプレースホルダーとして使用しようとします。次に、値を挿入する場所を指定することをお勧めします。%%%s

したがって、コードは次のようになります。

cursor.execute("select * from books where name like '%%oo%%' OFFSET %s LIMIT %s", (0,1))
于 2012-12-27T14:30:32.463 に答える