Найти - Пользователи
Полная версия: Escape-последовательность в LIKE MySQLdb
Начало » Базы данных » Escape-последовательность в LIKE MySQLdb
1
agryn
Здравствуйте! Запихиваю такой запрос через 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’
terabayt
Попробуйте так
...
sql = r"SELECT User, LEFT(Db, LOCATE('\\', Db) - 1) FROM db WHERE User != '' and Db LIKE '%\\\\%'"
...
agryn
terabayt
Попробуйте так
Заработапо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB