Как правильно сформировать запрос к базе данных?

Тема в разделе "Базы данных", создана пользователем cbone, 8 фев 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. cbone

    cbone Создатель

    Регистр.:
    25 ноя 2007
    Сообщения:
    28
    Симпатии:
    5
    Запрос выглядит так:
    $sql = "SELECT range as value, concat(range,'-',range+200) as text FROM #__ezrealty_price WHERE published=1 ORDER by ordering";

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

    Подробнее проблема описана по адресу:
    https://www.nulled.cc/showthread.php?t=46756
     
  2. Talker

    Talker Создатель

    Регистр.:
    6 янв 2008
    Сообщения:
    33
    Симпатии:
    3
    floor(имя_поля)
     
  3. cbone

    cbone Создатель

    Регистр.:
    25 ноя 2007
    Сообщения:
    28
    Симпатии:
    5
    Как я понял, мое concat нужно было заменить на floor.

    После замены вот что получил в ответ:
    Вызов DB функции завершен с ошибкой номер: 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''-',range+200) as text FROM jos_ezrealty_price WHERE published=1 ORDER by orderi' at line 1 SQL=SELECT range as value, floor(range,'-',range+200) as text FROM jos_ezrealty_price WHERE published=1 ORDER by ordering
     
  4. Talker

    Talker Создатель

    Регистр.:
    6 янв 2008
    Сообщения:
    33
    Симпатии:
    3
    Если я правильно понял, вам нужно сделать
    select floor(range), ...
    т.е. отбросить дробную часть знаения range
     
  5. cbone

    cbone Создатель

    Регистр.:
    25 ноя 2007
    Сообщения:
    28
    Симпатии:
    5
    Да, нужно чтоб осталась только целая часть числа.
    Во, здесь: http://akvilonus.ru/index.php?option=com_ezrealty&Itemid=34&task=search
    Там почему то разного формата записи получаются в промежутке цен. Вот мне и нужно чтоб все было приведено к виду: XXX-(XXX+200). А у меня там так: XXX.YY-(XXX+200)
     
  6. Talker

    Talker Создатель

    Регистр.:
    6 янв 2008
    Сообщения:
    33
    Симпатии:
    3
    concat(floor(range),'-',floor(range)+200)
     
    cbone нравится это.
  7. cbone

    cbone Создатель

    Регистр.:
    25 ноя 2007
    Сообщения:
    28
    Симпатии:
    5
    А как реализовать такую вот идею:
    Все значения как есть:
    200-400
    400-600
    600-800
    800-1000
    и т.д , до предела-2000.
    А последний диапазон: 2000-2500?
    Что то вот думаю, никак понять не могу...
     
  8. Talker

    Talker Создатель

    Регистр.:
    6 янв 2008
    Сообщения:
    33
    Симпатии:
    3
    select if(range=2000,concat(range,'-',500),concat(range,'-',200)) from ...
     
    cbone нравится это.
  9. WATS0N

    WATS0N Писатель

    Регистр.:
    30 июл 2009
    Сообщения:
    6
    Симпатии:
    0
    Каспероского выруса база есть ? здесь ?
     
Статус темы:
Закрыта.