Forum Webscript.Ru
Общие => Базы данных => Тема начата: metton от 30 Ноября 2003, 23:34:06
-
Почему запрос в MySQL
SELECT auth_id, auth_name FROM authors WHERE auth_name LIKE "%со%" LIMIT 0, 30
Возвращает не только записи, где в auth_name содержится "со" (русские символы), а и другие записи с кириллическими символами (я так понял, все, которые содержат "c"), а также записи с латинскими символами?
-
Набери
SHOW VARIABLES
и поглядь если
character_set не cp1251
то выставь...
-
2Alexandr
Даже если он пытается найти эти символы "в другой" кодировке, всё равно во всех результатах должно быть что-то общее, а именно, два символа с кодами введённых символов. А там такого нет.
А как выставить переменную?
-
metton неправильная мысль.
выставить переменные - в my.cnf
-
А там такого нет.
Это тебе только кажется.
-
2RomikChef
Хм... А почему же тогда находятся как записи только с киррилическими, так и только с латинскими символами? Не может же быть что у разных символов одинаковые коды? Или там происходит переполнение и счётчик кодов обнуляется и начинается сначала? (не помню как это называется)
-
А теперь ответь мне на один вопрос.
С чего ты взял, что эти коды - кириллические?
Ну, или, попроще - с чего ты взял, что база считает эти коды кириллическими?
-
2RomikChef
Так я этого и не брал... не считал :)
Вообще к чему этот вопрос?
Я говорю, что находятся записи как только с кириллическими, так и только с некириллическими. Соответственно, в них ничего общего, если только не выход за границу кодов и счёт сначала...
-
Этот вопрос к тому, что база ищет все правильно. А ты, считая, что она ищет неправильно - заблуждаешься.
-
2RomikChef
Тогда можно объяснить на каком основании она находит то, что я сказл?
-
Это же очевидно.
Она считает найденные буквы совпадающими с введенным тобой образцом.
-
2RomikChef
Так а почему она считает разные группы символов (не имеющие общих) совпадающими с образцом?
-
С чего ты взял, что "не имеющие общих" - вот что я в толк никак не возьму? Это с твоей точки зрения они "не имеющие". Неправильной.
-
2RomikChef
С чего ты взял, что "не имеющие общих" - вот что я в толк никак не возьму? Это с твоей точки зрения они "не имеющие". Неправильной.
Я и пытаюсь понять каким образом она находит среди групп символов не имеющих общих (с точки зрения их графического представления, если уж ты такой непонятливый) соответствия? Как она находит соответствия кодам символов "со" в строках, не имеющих двух подярд идущих символов (опять же, в их графичеком представлении)? Ведь нет в одной таблице символов двух символов с одинаковым кодом!
-
Ах, это я непонятливый. Ну-ну. И база у тебя непонятливая. Вот дура - русского языка не понимает! Вот, оказывается, кто виноват.
-
2RomikChef
Ты можешь без всяких сентенций объяснить как она умудряется найти вышеуказанные записи?
-
с точки зрения их графического представления
AFAIK или IMHO... Какое графическое представление в базе данных? ты что думаешь база данных интерпритирует символы в графическом исполнении? Нет... в коде их представляет...
Есть стандартные наборы, точнее наборы англицкие символов, остальные нестандартные... База не понимает, что ты хош выбрать и выбирает то, что сама не понимает, то есть те наборы символов которые не входят в кодировку по-умолчанию, что странного-то???
[OFF]Если мы научим англичанина говорить слово "Здравствуйте", не значит что мы обучили его русскому языку...[/OFF]
-
2Phoinix
AFAIK или IMHO... Какое графическое представление в базе данных? ты что думаешь база данных интерпритирует символы в графическом исполнении? Нет... в коде их представляет...
Да ессесно я это понимаю. Но тут и не до такого идиотизма дойдёшь когда ты спрашиваешь почему выбираются записи, не имеющие ни одного одинакового символа (т.е. записи состоящие только из латинских и состоящие только из кириллических символов по сути не могут иметь одинаковые символы), а мне говорят, что они имеются...
Что значит, выбирает, то что сама не понимает?
-
Создай файл c:/my.cnf
И в нём пропиши
[mysqld]
default-character-set=cp1251
-
Я одного не могу понять - почему ты вбил себе в голову, что символы из второй половины АСКИ таблицы - кириллические.