Форум сайта python.su
Добрый день!
У меня есть такой код:
self.dbc.execute ('select CELLNO,NO,POS1 from BLOCKS \ where ARTICLEID = ? and BLOCK = 0 \ and IGNORE = 0 and TYPE in ("term","phrase") \ and SELECTABLE = 1 \ and POS1 < POS2 order by CELLNO,NO' ,(self.artid,) )
self.dbc.execute ('select CELLNO,NO,POS1 from BLOCKS \ where ARTICLEID = ? and BLOCK = 0 \ and IGNORE = 0 and TYPE in (?,?) \ and SELECTABLE = 1 \ and POS1 < POS2 order by CELLNO,NO' ,(self.artid,'term','phrase',) )
TYPE in ("term","phrase")
TYPE in (?,?)
Офлайн
Не уверен что сработает, но так выглядит логичнее:
self.dbc.execute ('select CELLNO,NO,POS1 from BLOCKS \ where ARTICLEID = ? and BLOCK = 0 \ and IGNORE = 0 and TYPE in (?) \ and SELECTABLE = 1 \ and POS1 < POS2 order by CELLNO,NO' ,(self.artid,['term','phrase']) )
Офлайн
vanvanovВ виде кавычек могут быть. В разных СУБД синтаксис SQL может отличаться. Где-то могут быть добавки всякие и прочее. Где-то одинарные кавычки должны быть, где-то двойные кавычки, где-то обратные кавычки. В разных СУБД могут быть различия, хотя пишешь одно и то же и язык SQL - один и тот же типа. Сюрпризы там бывают, поэтому всё надо проверять на реальной СУБД, прежде чем в питоне писать код потом для неё.
В чем могут быть подводные камни?
Отредактировано py.user.next (Июль 6, 2020 01:24:15)
Офлайн
Или использовать SQLALchemy. Она за тебя сам запомнить какие сюрпризы в каких бд. Для этого у нее есть порты.
Офлайн