Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с сортировкой 
:(
    Опции темы
Sniper_super
Дата 5.10.2010, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 8.5.2007

Репутация: нет
Всего: нет



Здравствуйте !
Есть запрос
Код

$query = "SELECT DISTINCT relation.itemid, title, owner, image, background, icon FROM `#__sobi2_cat_items_relations` AS relation
LEFT JOIN `#__sobi2_item` AS items ON relation.itemid = items.itemid
LEFT JOIN `#__sobi2_fields_data` AS data ON relation.itemid = data.itemid
WHERE (data.fieldid={$sortId} AND (`catid` = {$catid} {$or}) AND `published` = '1' AND 
(`publish_down` > '{$now}' OR `publish_down` = '{$config->nullDate}' ) AND items.itemid IN({$query}) ) 
ORDER BY data.data_txt {$limits}";


Проблема в том что поле data_txt в таблице sobi2_fields_data текстовое и в нем хранятся как числовые значения так и текстовые. Когда я делаю сортировку с выборкой data.fieldid={$sortId}, где под fieldid попадает текстовое наполнение, например адрес, тогда все ОК, но когда я делаю сортировку, например цены, то у меня числовые значения сортируются как текстовые.

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

Это сообщение отредактировал(а) Sniper_super - 5.10.2010, 01:23
PM MAIL   Вверх
Akina
Дата 5.10.2010, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Очистите Sql-текст от PHP-шелухи.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Deniz
Дата 5.10.2010, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 6
Всего: 44



Цитата(Sniper_super @  5.10.2010,  03:22 Найти цитируемый пост)
Есть ли способ указать как сортировать текстовое поле с цифровым наполнением?
можно попробовать cast'ом перевести строку в число, но где это не возможно будет ошибка.
В общем случае не получится, нужны костыли. Например, дополнить все "цифры" спереди символом "0" до одинаковой длинны, тогда строки из цифр будут сортироваться нормально.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Akina
Дата 5.10.2010, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(Sniper_super @  5.10.2010,  02:22 Найти цитируемый пост)
Есть ли способ указать как сортировать текстовое поле с цифровым наполнением?

ORDER BY CAST()


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Sniper_super
Дата 5.10.2010, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 8.5.2007

Репутация: нет
Всего: нет



СПАСИБО! Получилось smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.