Форум сайта python.su
Доброго времени суток!
Вопрос такой, возможно ли использовать LIKE в SELECT при использовании pyodbc? ()
пример:
d=input()
….
('select a,b,c from db where c like', d)
…
к базе и таблице цепляется, а выполнять select не хочет…
есть необходимость проверить вхождение ‘d’ в ‘c’
Офлайн
По идее все команды должны отрабатывать, какую ошибку выдает?
Офлайн
_visor_Если это ваш запрос, то в нем ошибка
('select a,b,c from db where c like', d)
Офлайн
PooH
а в чем я ошибся?
использую pyodbc т.к. база на MSSQL. а Pyton 3.х.
почитал мануал pyodbc, ссылок на LIKE совсем не нашел. на форумах тоже нет. может синтаксис не верен? хотя без LIKE прямой запрос к базе …where c=?',d… проходит.
Офлайн
o7412369815963
тут я не совсем понял какого параметра ему не хватает..
pyodbc.ProgrammingError: ('The SQL contains 0 parameter markers, but 1 parameters were supplied', ‘HY000’)
Офлайн
_visor_В синтаксисе использования LIKE. Должны быть кавычки. См. справку по SQL.
а в чем я ошибся?
Офлайн
решение немного удивило :-))
('select a,b,c from db where c like ?', d)
и все заработало……
все равно всем спасибо!!
Офлайн
_visor_Ничего удивительного.
решение немного удивило :-))
Question mark style, e.g. …WHERE name=?
Офлайн
с LIKE (=?) почему то не работает. а решение похоже не совсем корректное. оно работает, но результат неполон. странно….
Офлайн
Потому что синтаксис оператора LIKE отличается от синтаксиса оператора = в самом SQL.
? указывает только на местоположение параметра.
Во всем остальном должен быть соблюден синтаксис SQL.
Офлайн