SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.07.2011 19:59:36

Garik
Завсегдатай
Зарегистрирован: 26.05.2010
Сообщений: 27

Сортировка поля varchar со строкой как числа

Приветствую!
Есть поле img тип varchar. Состоит из таких названий:
img_1.jpg
img_2.jpg
...
img_10.jpg
...

Так вот, при сортировке типа ORDER BY img ASC значения сортируются так:
img_1.jpg
img_10.jpg
img_11.jpg
...
img_2.jpg
img_22.jpg

А как сделать чтобы они сортировались по числам, т.е. img_1.jpg, img_2.jpg и тд?

Отредактированно Garik (19.07.2011 20:00:22)

Неактивен

 

#2 19.07.2011 20:47:52

Aqula
Участник
Зарегистрирован: 12.01.2011
Сообщений: 21

Re: Сортировка поля varchar со строкой как числа

в php есть функция natsort для этого. В sql насколько я знаю подобного нет

Неактивен

 

#3 19.07.2011 21:02:53

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Сортировка поля varchar со строкой как числа

Для конкретного случая можно воспользоваться обходным путем:

SELECT * FROM t ORDER BY replace(replace(img,'img_',''),'.jpg','')+0;


+ 0 для конвертации строки в число.

Неактивен

 

#4 19.07.2011 22:05:20

Garik
Завсегдатай
Зарегистрирован: 26.05.2010
Сообщений: 27

Re: Сортировка поля varchar со строкой как числа

ок, спасибо! Попробую

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson