Скажу сразу что инфу по вопросу искал, читал форумы и спрашивал у специалистов, не помогло. (((
Вопрос: Есть база данный в кодировке utf-8. В неё таблицы содержащие русские слова, английские, цифры (в общем всё). Я формирую список из слов, словосочетаний, далее запросом сравниваю поочерёдно элементы из списка с данными БД и если они совпадают, то удаляю строку. Проблема в том что строки состоящие из цифр, символов, англ.букв, удаляются нормально, но если встречается русский символ, то эта запись не удаляется, в итоге остаются только те строки где были русские символы.
Так как новечёк, пишу как показали или вычитал, код в файле .py, БД - MySQL работаю через MySQL Query Browser, выполняю через cmd.
——Вот некоторые подробности, чтоб их не повторять——
Этим я проверил что БД в кодировке utf-8:
show variables like ‘coll%’;
show variables like ‘char%’;
В начале я указал: # -*- coding: utf-8 -*-
Так я пробовал: u'слово русское' - не помогло
И наконец сам код:
# -*- coding: utf-8 -*-
import sys
from MySQLdb import connections
db=connections.Connection(db='my_db',host='localhost',user='root',passwd='')
c=db.cursor()
tags=["air art моментальный загар", "B-КОМПЛЕКС", "2008", "home", "борщ", "###@@@", "2"]
def tag():
tagss=tags[-1]
tags.pop()
return tagss
for num in range(len(tags)):
sql="DELETE FROM tabl WHERE name='%s'" % tag()
c.execute(sql)
db.commit()
for i, n in c.fetchall():
print i, n
C:\…путь…\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated from sets import ImmutableSet - так понял это не критично.
В таблице остались строки:
3618, ‘air art моментальный загар’
1137, ‘B-КОМПЛЕКС’
2337, ‘борщ’
Спасибо за внимание.