Вопрос по поводу учета регистра при поиске

  • Автор темы Автор темы Keron
  • Дата начала Дата начала

Keron

Новичок
Вопрос по поводу учета регистра при поиске

Суть такова, имеетеся табличка mysql, идет поиск по одному полю, а именно [Фамилия varchar[100] binary] . Данные в это поле заносятся, учитывая регистр, т.е. к примеру {Иванов}

Как сделать так, чтобы в поиске я писал к примеру [ива] - в нижнем регистре, и чтобы строчка нашлась. Пока я использую запрос:

SELECT * FROM table WHERE surname LIKE '%$surname%'
 
лично мне - для корретной сортировки, т.к. в поле есть и кирриллица а есть и латиница, без этого сортировка происходит беспорядочно
 
хотите сказать проблема правилах сравнения

т.е. cp1251_bin заменить на cp1251_general_ci ?
 
почему 99% посетителей этого форума всегда формулируют вопрос "значит, мне надо сделать тот-то"?
почему никогда от них не услышишь "мне надо ПОНЯТЬ что-то"?
Откуда эта буратинская практичность?
 
Автор оригинала: *****
почему 99% посетителей этого форума всегда формулируют вопрос "значит, мне надо сделать тот-то"?
почему никогда от них не услышишь "мне надо ПОНЯТЬ что-то"?
Откуда эта буратинская практичность?
Я как раз и пытаюсь понять

ксатати за линк спасибо, полезная инфа, проблему решил!
 
Ну так что там, по ссылке, написано про неправильную сортировку? Что надо поменять одно заклинание (cp1251_bin ), на другое(cp1251_general_ci) и все сразу заработает?
 
Автор оригинала: *****
Ну так что там, по ссылке, написано про неправильную сортировку? Что надо поменять одно заклинание (cp1251_bin ), на другое(cp1251_general_ci) и все сразу заработает?
ну, в принципе вот это помогло с поиском:

линк
Обычно у каждой кодировки есть, как минимум, два набора правил сравнения - имякодировки_bin и имякодировки_general_ci. Первый сравнивает в лоб по кодам символов, а второй - регистронезависимо, учитывая совпадающие символы.

-~{}~ 17.02.08 19:53:

только появилась проблемка - при смене кодировок с cp1251 на cp1250 в поле появились вместо кириллицы вопросы, при обратной смене вопросы сохранились - почему так?
 
ты всё таки так ничего и понял о кодировках

попробуй взять текст (да хоть любой текстовый документ в блокноте), заменить в нем все буквы на знаки вопроса а потом изменить их обратно на буквы....
 
Странно. Если у тебя изначально сортировало криво, то, на мой взгляд, стояла неправильная кодировка.
 
мля. потому что ты испортил себе данные

-~{}~ 17.02.08 20:04:

Вот опять я не понимаю.
По ссылке написан ЗДОРОВЕННЫЙ раздел о том, как правильно менять кодировку.
Ну ладно. Есть люди, которые не могут осилить два экрана текста.
Но спечиально для них, в самом начале написаyj - "если проблемы с сортировкой - см. пункт про перекодировку."

ЧЕМ НАДО ДУМАТЬ, чтобы после этого cделать alter table?
 
Автор оригинала: *****
Странно. Если у тебя изначально сортировало криво, то, на мой взгляд, стояла неправильная кодировка.
ситуация была такова, кодировка изначально была cp1251 а правила сравнения не было :)
поэтому видимо и сортировка была кривая, а именно вывод происходил вразброс - сначала цифры, затем вперемешку латинские и кириллица

сейчас помудрил с правилами сравнения (для регистронезависинья при поиске) и ненароком сменил кодировку на cp1250 и пр сравнения yf что-то там с Хорватским.

Дамп до этого был сделан )

В принципе более менее понятно что к чему, проще говоря:

1) кодировка, в которой должны лежать данные должна совпадать с кодировкой поля
2) правила сравнения или порядок сортировки т.е. COLLATION - тут уже есть варианты, регистронезависимое сравнения, регистрозависимое и прочие

это верно?

едиственный вопрос еще остается - только потому что не были заданы COLLATION - поэтому происходила неправильная сортировка (перемешка латиницы и киррилицы) или могут быть другие причины?

-~{}~ 17.02.08 20:16:

Автор оригинала: *****
мля. потому что ты испортил себе данные

-~{}~ 17.02.08 20:04:

Вот опять я не понимаю.
По ссылке написан ЗДОРОВЕННЫЙ раздел о том, как правильно менять кодировку.
Ну ладно. Есть люди, которые не могут осилить два экрана текста.
Но спечиально для них, в самом начале написаyj - "если проблемы с сортировкой - см. пункт про перекодировку."

ЧЕМ НАДО ДУМАТЬ, чтобы после этого делать alter table?
ты прав делал я без дампа ступил )
 
Я вот что думаю.
В фак нужно обязательно включить пункт про дамп базы данных. До того, как вообще его читать.
И внести пункт: "если у вас в дампе базы данных все впорядке (нет знаков вопроса, etc...)", то вы можете читать его далее...
 
слушай, сколько процентов текста ты прочитал по ссылке? 2? 5? Там открытым текстом, черным по белому написаны ответы на твои вопросы.
Которые даже противоречат друг другу.
Ты можешь, наконец, прочитать целиком?

БЫЛО у тебя правило сравнения. БЫЛО. Только ты до сих пор не удосужился узнать - какое именно
 
едиственный вопрос еще остается - только потому что не были заданы COLLATION - поэтому происходила неправильная сортировка (перемешка латиницы и киррилицы) или могут быть другие причины?
Не были указанны - это не значит, что их не было. По умолчанию они тоже проставляются.
 
ппц долго смеятся над темой, и вот в 2 часа ночи сам запорол базу без бекапа 7 статей ))
Эх =) Пойду в круглосуточную аптеку за вазелином ^_~
 
Подскажите, в phpmyadmin 2.7.0 не могу найти меню выбора правил сравнений, за запрос при создании таблицы
....character set cp1251 collate cp1251_bin .... показывает как ошибку
 
Сверху