Привязка параметров для предложения IN с помощью pymssql

Нигде не нашел, поэтому спрашиваю здесь.

Скажем, у меня есть запрос, такой как

SELECT * from TABLE WHERE col in ('a', 'b', 'c', .......);

Эти данные предоставляются списком строк, и он довольно большой, длина более 100. Каков эффективный способ привязки параметров в таком сценарии.

сейчас я делаю

'SELECT * from TABLE WHERE col in {0}'.format(str(tuple(LIST_OF_DATA)))

Другой способ, который я мог бы придумать, - это подготовить строку привязки с длиной списка, например ','.join(itertools.repeat("%s", len(LIST_OF_DATA))), и объединить ее с запросом.

Есть ли другой способ, кроме этого, связать в запросе список данных?


person sagarchalise    schedule 05.10.2018    source источник
comment
Не используйте форматирование строк, это риск SQL-инъекции. Вы исследовали это?   -  person roganjosh    schedule 05.10.2018
comment
Я просматривал документацию и искал ее. Очевидно, я бы не пошел на форматирование, но не смог найти подходящего способа сделать это. Я знаю, что второй процесс подготовки данных привязки лучше, но я хочу знать, есть ли что-то лучшее, о чем я не знаю.   -  person sagarchalise    schedule 05.10.2018