Общие > Базы данных
MySQL: русские буквы в LIKE
(1/1)
Forza:
Здравствуйте.
Имеется таблица информации о фильмах, в которой присутствуют столбцы английского и русского (кодировка Win) названий, а также описание.
База - MySQL 4.0.12 под Виндами.
Если я правильно понимаю, то для вывода всех фильмов, начинающихся на русскую букву П и упорядоченных по имени, я могу написать SELECT * FROM dvd WHERE rus_name LIKE \'П%\' ORDER BY rus_name;, да?
Если искать по английским названиям (заменив в запросе rus_name на eng_name и \'П%\' на что-нибудь английское) , то всё работает как и надо. Но при поиске по русскому имени в некоторых случаях в результаты поиска попадают фильмы, начинающиеся на другие буквы (что самое интересное - на соседние по алфавиту: например, в случае с "П" это - Н, О, М), кроме того теряется сортировка по названию.
Подскажите, пожалуйста, как с этим бороться.
tserbis:
Прочти здесь - http://tony2001.phpclub.net/faq/mysql.charset.html .
Forza:
Большое спасибо, tserbis, за оперативный ответ: изменение кодировки в настройках сервера исправило проблему. :appl:
Интересно было попробовать также и второй вариант, описанный в ссылке:
--- Цитировать ---Начиная с MySQL 4.1, можно задавать кодировку базы данных при ее создании в конструкции CREATE TABLE или изменить позже запросом ALTER TABLE
--- Конец цитаты ---
Но я не нашёл ни на mysql.ru, ни на mysql.com упоминание кодировки в синтаксисе CREATE TABLE.
tserbis:
http://dev.mysql.com/doc/mysql/en/CREATE_TABLE.html
As of MySQL 4.1, character column definitions can include a CHARACTER SET attribute to specify the character set and, optionally, a collation for the column. For details, see section 11 Character Set Support.
Forza:
Опять спасибо за ссылку. Буду иметь эту возможность в виду.
А я, балда, не нашёл, потому что пытался найти упоминание кодировок в свойствах всей таблицы в целом.
Навигация
Перейти к полной версии