Форум сайта python.su
Не знаю как в MySQL, а в каноническом SQL сопостовление с LIKE регистрозависимое. В PosrgreSQL есть способы задать вопрос так, как надо. Там даже стандартный re можно использовать…
Офлайн
ZZZВ MySQL, LIKE регистро-независимый. Да и такой запрос:
Не знаю как в MySQL, а в каноническом SQL сопостовление с LIKE регистрозависимое. В PosrgreSQL есть способы задать вопрос так, как надо. Там даже стандартный re можно использовать…
select([func.upper(t.c.name).label('name')], func.upper(t.c.name).like(func.upper(u'Пуля')))
Отредактировано (Май 14, 2008 08:08:45)
Офлайн
shizaНет, он так вообще ниче не находит. Нужно писать в юникоде. Если из таблицы взять кракозябру, то найдет. Но опять же одно слово.
а если попробовать выполнить в SQLyong:Правильно выборку делает?select * from test where name LIKE 'пуля'
Офлайн
Если все кодировки правильно стоят, то SQLyong - в нужной колировке запрос делает.
У меня на твоей таблице и моем запросе, в SQLyong возвращаются все варианты слова “пуля”.
Офлайн
Ога. Проверил. Если все делать из SQLyong, то все работает. Ну ясно. Значит алхимия косячит. Есть идеи как его можно настроить?
Отредактировано (Май 14, 2008 09:10:24)
Офлайн
Решение нашел в соседней ветки. Session.execute( “SET NAMES UTF8” ) спасает…
Теперь надо всю базу перекодировать %)
Отредактировано (Май 14, 2008 09:26:28)
Офлайн
Неудобно жуть. При каждом запросе делать такую бяку :(
Офлайн
Обверни во что-нибудь.
А лучше алхимию подфиксай ;)
Офлайн
Да просто, в каждом методе контроллеров __before__, пишешь эту чачу) Нет желания у меня копаться в алхимии. Будет долго, так как английский не знаю. Может со временем кто-то найдет решение покрасивше :)
Офлайн
Поковырялси я. Оказывается алхимия тут не при чем.
# -*- coding: utf-8 -*-
from MySQLdb import Connection
c = Connection("localhost", "lodin", "pass", "db")
c.query("INSERT INTO `Blog` (subject) VALUES ('тема')")
c.commit()
# -*- coding: utf-8 -*-
from MySQLdb import Connection
c = Connection("localhost", "lodin", "pass", "db")
c.query("SET NAMES UTF8")
c.query("INSERT INTO `Blog` (subject) VALUES ('тема')")
c.commit()
Отредактировано (Сен. 18, 2008 22:06:59)
Офлайн