Forum Webscript.Ru
Общие => Базы данных => Тема начата: AlieN от 28 Ноября 2002, 13:57:51
-
Вот есть таблица с неким столбцом типа char
Можно ли его отсортировать так,чтобы снала показывались записи где циферки а потом все остальное, или что-нить в таком духе?
-
если тебе ORDER chr ASC не подходит то наверное нельзя.
У тебя это поле одному символу равно? (если да, то можно в скрипте сделать хеш:
$array = array("0"=>"0","1"=>"1",...."A"=>128","B"=>128", ....);
а поле заменить на числовой тип.)
-
У тебя записи могут содержать только циферки и только буковки, или там попадаются смешанные строки?
Если первый вариант, то, ORDER BY вернет тебе то, что нужно
-
Maniac
Есть иногда смешанные
Макс
Поле всегда больше одного символа
-
Есть иногда смешанные
Тогда тем более он тебе сначала выдаст циферки, потом слова, которые начинаются с циферок, потом слова, которые с них не начинают
-
Тогда тем более он тебе сначала выдаст циферки
http://www.status.ru/search/ned_ar_search.phtml?&&rooms=&street=&ohrana=&signal=&reshet=&etaz=&balcon=&phone=&rooms=&from_metro=&san_uzel=&phone=&order=komnat&submit=yes&order=prodaza
-
Мдя. Действительно.
Ну, если тебя не очень интересует сортировка внутри классов "только циферки" и "циферки и буквы", то можешь использовать ORDER BY right(field,1) asc
-
Maniac гм...
теперь вообще ничего не показывает :(
-
Надеюсь, field на свое имя поля заменил? :)
-
Maniac
Я конечно тупой но не до такой же степени....
-
Странно. Моя тестовая таблица, поле nechto:
12п
12
10т
5
10пт
1554
Запрос:
select nechto from news order by right(nechto,1) asc
Результат:
12
1554
5
12п
10т
10пт
-
Maniac
Короче понятно, такого запроса не существует
оффтопик
-
AlieN опиши точно как должно сортироваться на примере Maniac\'а.
Щас замутим.....
-
Ну вот напр. первые идеи:
CREATE TEMPORARY TABLE _tmp(
my_col CHAR(255)
);
INSERT INTO _tmp VALUES (\'12\');
INSERT INTO _tmp VALUES (\'2\');
INSERT INTO _tmp VALUES (\'5n\');
INSERT INTO _tmp VALUES (\'n5n\');
INSERT INTO _tmp VALUES (\'nmm\');
SELECT my_col, my_col+0 as my_col_n, IF((my_col+0), (my_col+0), (my_col+90000)) as my_col_f FROM _tmp ORDER BY my_col_f, my_col;
Мучай.....
-
Ааааа....
http://www.status.ru/search/ned_ar_...s&order=prodaza
тебе сортировка, напр., по дальности???
-
Вот ещё идейка:
SELECT my_col, IF((REVERSE(my_col)+0) && (my_col+0), (my_col+0), (my_col+90000)) as my_col_f FROM _tmp ORDER BY my_col_f, my_col;
-
AlieN, если честно, то я не очень поняла что тебе нужно :-)
если у тебя есть допустим такие данные
1
10
2а
2
в34
то как тебе надо что бы оно их отсортировало?
1
2
10
2а
в34
или
1
2
2а
10
в34
???
-
ОБЪЯСНЯЮ КАКАЯ ТРЕБУЕЦА СОРТИРОВКА:
1
2
3
150
151
151т
158ж
а
аа
ббб
ввввв
Теперь понятно? :)
-
AlieN
Лох глюкавый!!! ;)
-
В коде был небольшой глюк,но вопрос сортировки открыт
ЗЫ: ХМЫРЬ ТЕБЕ СЕГОДНЯ НЕ ЖИТЬ
-
AlieN тогда так:
SELECT my_col, IF((my_col+0), (my_col+0), (my_col+90000)) as my_col_f FROM _tmp ORDER BY my_col_f, my_col;
-
Короче все проще:
Metaller иногда бывает прав ( хотя очень очень редко;))
Вот что нужно было:
SELECT exl_ned_ar . * , ( 0 + metrvgod )
as NewField
FROM `exl_ned_ar`
ORDER BY NewField LIMIT 0, 30
-
> Вот что нужно было:
ну .. вообще-то это тебе даст немного не тот результат, чем ты описал ;)
но если тебе подходит .. :-))
[OFF]вам не кажется, что сегодня сдесь слишком оживленно :) [/OFF]
-
fidget
http://www.status.ru/search/ned_ar_search.phtml?&&rooms=&street=&ohrana=&signal=&reshet=&etaz=&balcon=&phone=&rooms=&from_metro=&san_uzel=&phone=&order=komnat&submit=yes&order=metrvgod2
Думаю это то что мне было нужно
Хотя если бы буковски были бы в конце было бы лучше
вам не кажется, что сегодня сдесь слишком оживленно
Я сам удивлен за 4 часа 20 постов
-
AlieN , прости меня темную, но какое поле ты там сортируешь :-)
посмотри еще вот этот топик, самый последний пост:
http://www.xpoint.ru/cgi-bin/forum.cgi?action=thread&id=15682
> Я сам удивлен за 4 часа 20 постов
жизнь проболжается одним словом :-)))
-
но какое поле ты там сортируешь
последнее вроде
-
Хотя если бы буковски были бы в конце было бы лучше
AlieN, я ж тебе написал как это сделать:
http://forums.webscript.ru/showthread.php?s=&postid=61799#post61799