管理コマンドがあります
from django.db import connection
from django.core.management.base import BaseCommand
class Command(BaseCommand):
args = "[id]"
def handle(self, id, **options):
ids = []
if '-' in id:
splitted = id.split('-')
for n in range(int(splitted[0]), int(splitted[1])+1):
ids.append(n)
else:
ids.append(id)
c = connection.cursor()
c.execute('SELECT content FROM log WHERE id IN %s', [ids])
コマンド名を入力してパラメータ(id)を指定することでこれを実行できます
を実行するcommand 200-205
と、forループはリストを返します。
ids =[200, 201, 202, 203, 204, 205]
そして、これをクエリに入れます:
SELECT content FROM log WHERE id IN (200, 201, 202, 203, 204, 205)
ブリリアント!
command 200
IDを実行すると、次のようになります。
ids = [200]
クエリを実行すると、エラーが返されます。
(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1")
SELECT content FROM log WHERE id IN (200)
動作しているはずなのに動作していないようです。
私はここで何が間違っているのですか?