Интересно как же это осуществить?

rudik

Developer
Интересно как же это осуществить?

Есть поле с цифровыми значениями, как сделать выборку максимального значения с предпоследними двумя знаками?

Пример:
Значения
010102
010205
010307

Необходимо выбрать максимальное значение из 3 и 4 знака.
В данном случае это будет 010307.
 

DiMA

php.spb.ru
Команда форума
наверно
SELECT MAX(pole%10) FROM table

(только это фиговая задача, если в ней требуется выполнять такой запрос)
 

rudik

Developer
Чтение мануала помогло выглядеть запрос должен приблизительно так:

select MAX(substring(column)) from tbl_name;

2 DiMA:
А в чем фиговость? Делаю каталог, разделы которого определяются по алгоритму:

Допустим, есть раздел под номером 020506
02 - Первый уровень, которому соответствует раздел с id=02
05 - подраздел 02 его параметры находятся в таблице под id=0205
06 - раздел в котором мы сейчас находимся.

Если этот алгоритм имеет какие-либо явные недостатки или есть более удобный, то с радостью выслушаю критику по этому вопросу.
 

DiMA

php.spb.ru
Команда форума
> select MAX(substring(column)) from tbl_name;

что же ты не написал, что это строки? ты не о фиговости переспашивай, а вопрос нормально пиши

Это плохо тем, что нельзя использовать индексы или иные средства оптимизации.

> Если этот алгоритм имеет какие-либо явные недостатки или есть более удобный,

да, один большой недостаток - в каждой ячейке должна быть _неделимая_ часть информации. К примеру, описывать списки, как ты, через какие либо разделители (у тебя по смещению в байтах) - плохо, не логично, усложняет задачу.
 

rudik

Developer
А как же по поводу лучшего варианта?
Может есть какие-либо соображения?
 

DiMA

php.spb.ru
Команда форума
не знаю, ты задал конктерный вопрос, я конкретно ответил (ударение не на "конкретно" или "ответил", а типа читать ровным тоном). А это уже из области "а вот если так". Читай выше, я же в кратце написал - храни данные в отдельных полях.
 

chira

Новичок
Можешь попробовать принцып дерева , он используется в этом форуме.
 
Сверху