Форум: "Базы";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Вниз
Проблема Substring+Locate (MySQL) Найти похожие ветки
← →
Dimedrol © (2005-01-05 19:39) [0]Коллеги, стоит задача выбрать позицию первой буквы
текстового поля из строки:
мой запрос -
select
SUBSTRING(heading1,1,1) as subs,
LOCATE(SUBSTRING(heading1,1,1), "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ") as loc
from main limit 10
В резульате получаю -
subs loc
t 53
к 10
б 1
п 17
с 18
Т 18
к 10
с 18
у 18
+ 0
Короче - проблема в том, что в результатах,
видно, что у РАЗНЫХ букв получаются ОДИНАКОВЫЕ позиции.
КАК такое может быть ?
(База MySQL)
← →
Dimedrol © (2005-01-05 19:41) [1]А у буквы "Б" вообще - позиция не 2 а 1 :-(
← →
User_Name (2005-01-06 10:18) [2]Потестил, все нормально буква Б имеет 2-ю позицию :)
1. Поменяй например в запросе Б на б и посмотри какая позиция будет.
2. С какой кодировкой запускается MySQL
← →
Dimedrol © (2005-01-06 11:14) [3]2 User_Name
1. Тj же самое
2. Default (latin1)
← →
User_Name (2005-01-06 12:20) [4]Если сервер тестовый - перезапусти с кодировкой
--default-character-set=koi8_ru
У меня такая :) и твой запрос нормально отработал (естессно таблица и поле другие :) но это не важно :) )
← →
Dimedrol © (2005-01-06 14:44) [5]koi8_ПОДЧЕРКИВАНИЕ_ru нет такой страницы ;-)
есть koi8r!
НО! Еще вопрос - как у тебя выглядит dump таблицы ?
Там он в Create Statement в конце показывает charset самой таблицы !
← →
User_Name (2005-01-06 15:05) [6]2 Dimedrol © (06.01.05 14:44) [5]
Просто версии сервера разные :)
С 4.1.х эта кодировка и начала называться koi8r (ИМХО)
← →
Dimedrol © (2005-01-06 15:10) [7]а какая у тя версия ?
PS
Вообще мне некогда замечательный сервер MySQL нравиться все меньше и меньше. :-(
Сейчас ВСЕ стараюсь делать на Firebird.
← →
User_Name (2005-01-06 15:15) [8]2 Dimedrol © (06.01.05 15:10) [7]
3.23.53 и 4.0.20.
Согласен, только перевожу потихоньку все на MS SQL 2000 :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c