管理コマンドがあります
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 200IDを実行すると、次のようになります。
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)動作しているはずなのに動作していないようです。
私はここで何が間違っているのですか?