Сортировка кирилицы

Aen

Guest
Сортировка кирилицы

Проблема такова

на одном mysql сервере 4.0.18 одновременно лежат базы как в win так и в koi. в my.cfm сделана запись для default=win
и соответственно сортировка win части проходит на ура...

таблицы в koi - сортировка не идет, причем и в случае ORDER BY BYNARY - тот же результат...

как быть ?
 

Кром

Новичок
>причем и в случае ORDER BY BYNARY - тот же результат...

А в какой кодировке само слово, которое ты ищешь? Я думаю, что win1251.
 

Aen

Guest
Originally posted by Кром
>причем и в случае ORDER BY BYNARY - тот же результат...

А в какой кодировке само слово, которое ты ищешь? Я думаю, что win1251.
Ситуация такая - в базе то конечно все в win, но вносилось же без перекодирования - koi... ни перекодировать не изменить управляющую програму нет ни времени ни сил...

в базе лежит вот такое вот нЕЦДХОБТПДОЩК нЕНПТЙБМ

а сортировать то надо по РУССКИ :)

есть решение ?
 

Magnat

Guest
ORDER BY row ASC
А в отрибутах поля ставишь уже BYNARY.

Сто процентов... Проверь :))

-~{}~ 17.02.05 17:44:

Originally posted by Aen
Ситуация такая - в базе то конечно все в win, но вносилось же без перекодирования - koi... ни перекодировать не изменить управляющую програму нет ни времени ни сил...

в базе лежит вот такое вот нЕЦДХОБТПДОЩК нЕНПТЙБМ

а сортировать то надо по РУССКИ :)

есть решение ?
Б заще лежит не такое вот.. а нормальное :))) Кто вот.. это только у тебя на мониторе.. т.к. разные кодировки :)) Делай как я сказал :)) Всё будет ок..
 

Кром

Новичок
>одновременно лежат базы как в win так и в koi
>в базе то конечно все в win

Определись сначала что и как у тебя там лежит.

>в базе лежит вот такое вот нЕЦДХОБТПДОЩК нЕНПТЙБМ

Это не лежит такое, а ты видишь такое.

>а сортировать то надо по РУССКИ

Это и есть русский.

>ни перекодировать не изменить управляющую програму нет ни времени ни сил...

Перекодировать программу не надо. Надо перекодировать слово по которому ты ищешь в ту кодировку, в которой данные лежат в базе. Теперь мой намек понятен?
 

Aen

Guest
Originally posted by Magnat
ORDER BY row ASC
А в отрибутах поля ставишь уже BYNARY.

Сто процентов... Проверь :))

-~{}~ 17.02.05 17:44:


Б заще лежит не такое вот.. а нормальное :))) Кто вот.. это только у тебя на мониторе.. т.к. разные кодировки :)) Делай как я сказал :)) Всё будет ок..
SELECT title, uid FROM articles WHERE `folder_uid` = '$ruid' AND `private` = '0' ORDER BY title ASC

вот что в итоге получилось - поле title - BLOB

и ничего ...

как список выдавался вот в таком виде так и выдается :

Александрия
Астрахань
Берлин
Бийск
Днепропетровск
Гатчина
Горноалтайск
Хабаровск
Харьков
Хибины
Камчатка
Караганда
Комсомольск-на-Амуре
Львов
Магадан
Марий Эл
Мариуполь
Миасс
Москва
Мурманск
Николаев
Никополь
Нижний Новгород
Нижний Тагил
Норильск
 

Magnat

Guest
поле title - BLOB

А это как понимать? :)))
Ставь в атрибутах поля BINARY a что касается типа.. даже не знаю что сказать... Я не знаю.. зависит ли тип поля :)) У меня было поле VARCHAR.

Я бы тебе наглядный пример такой сортировки показал бы.. но хост прикрыли к сожалению...
 

Aen

Guest
Originally posted by Magnat
поле title - BLOB

А это как понимать? :)))
Ставь в атрибутах поля BINARY a что касается типа.. даже не знаю что сказать... Я не знаю.. зависит ли тип поля :)) У меня было поле VARCHAR.

Я бы тебе наглядный пример такой сортировки показал бы.. но хост прикрыли к сожалению...
VARCHAR поставить не могу, слишком у меня записи длинные но вот BLOB BINARY пожалуйста... не работает-с...
 

Magnat

Guest
Разве названия городов могут быть длинее 255 символов?? :)))
 

Aen

Guest
Originally posted by Magnat
Разве названия городов могут быть длинее 255 символов?? :)))
Легко и непринужденно :)

в данном поле сохраняются не только названия кородов... это просто заголовки статей :) и порой они не укладываются в 255 символов :(

Ладно если средствами mysql нечего не получается... может есть способ отсортировать полученный масив средствами php ? только вот масивчик уж очень многомерный...

-~{}~ 18.02.05 12:48:

Originally posted by Кром
>одновременно лежат базы как в win так и в koi
>в базе то конечно все в win

Определись сначала что и как у тебя там лежит.

>в базе лежит вот такое вот нЕЦДХОБТПДОЩК нЕНПТЙБМ

Это не лежит такое, а ты видишь такое.

>а сортировать то надо по РУССКИ

Это и есть русский.

>ни перекодировать не изменить управляющую програму нет ни времени ни сил...

Перекодировать программу не надо. Надо перекодировать слово по которому ты ищешь в ту кодировку, в которой данные лежат в базе. Теперь мой намек понятен?
В случае поиска - это само собой, но надо же просто вывести отсортированный по алфавиту список ... как быть ?
 
Сверху