Уведомления

Группа в Telegram: @pythonsu

#1 Июль 14, 2014 17:28:46

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

Escape-последовательность в LIKE MySQLdb

Здравствуйте! Запихиваю такой запрос через phpmyadmin:

SELECT User, LEFT(Db, LOCATE('\\', Db) - 1) FROM db WHERE User != '' and Db LIKE '%\\\\%'
все работает, а когда в питоне:
db = MySQLdb.connect(host=access.get('host', 'localhost'), user=mysql_login, passwd=mysql_pass, db=_db)
cursor = db.cursor()
sql ="SELECT User, LEFT(Db, LOCATE('\\', Db) - 1) FROM db WHERE User != '' and Db LIKE '%\\\\%'"
cursor.execute(sql)
то вот такое выдает:
_mysql_exceptions.ProgrammingError: (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")

 LIKE '%\\\\%'
нужно чтоб проверить что в строке присутствует символ “\”

LEFT(Db, LOCATE('\\', Db) - 1)
нужно для извлечения ‘test1’ с ‘test1\_test2’

Офлайн

#2 Июль 14, 2014 18:43:26

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Escape-последовательность в LIKE MySQLdb

Попробуйте так

...
sql = r"SELECT User, LEFT(Db, LOCATE('\\', Db) - 1) FROM db WHERE User != '' and Db LIKE '%\\\\%'"
...



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Июль 15, 2014 11:41:41

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

Escape-последовательность в LIKE MySQLdb

terabayt
Попробуйте так
Заработапо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version