За последние 24 часа нас посетили 18859 программистов и 1632 робота. Сейчас ищут 932 программиста ...

ORDER BY ... но ноль в конце

Тема в разделе "PHP и базы данных", создана пользователем sumsum, 10 окт 2014.

  1. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    В колонке с ценами есть ячейки без цена (цена договорная) надо что бы такое шло в самом конце в поиске. Можно л это сделать средствами MySQL?
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    что значит без цены? там null или пробел или что лежит?

    Добавлено спустя 1 минуту 2 секунды:
    ORDER BY 0+price DESC
     
  3. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Там пустая строка, тип varchar
    Еще вопрос какой знак является разделителем дробной части точка или запятая?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Не должен быть варчар.
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    действительно странно что цену храните в varchar. почему не DECIMAL или хотябы BIGINT (в копейках)
     
  6. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    Ок, а если просто поменять тип в phpMyAdmin с варчар на бигинт существующие данные от этого не затрутся?
    Еще вопрос какой знак в MySQL является разделителем дробной части точка или запятая?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    число + null позволят вам сортировать так, как хочется.
    строка тоже может быть сортирована с null впереди или сзади выборки, но строка сортируется по другим правилам: 1, 12, 15, 2, 26, 3... и так далее.

    может и затрутся. попробуйте на копии. если затрутся - то надо добавить новое поле, не убирая старое, и исхитриться с запросом на апдейт нового поля из старого.

    вроде так
     
  8. sumsum

    sumsum Новичок

    С нами с:
    13 май 2014
    Сообщения:
    96
    Симпатии:
    0
    А можно ли сделать апдейт всех ячеек с ценами и заменить запятые на точки? Что то типа такого:
    Код (Text):
    1. UPDATE table SET 'price'=str_replace(',','.','price')
    Добавлено спустя 7 минут 56 секунд:
    Нашел, вот так надо:
    Код (Text):
    1. UPDATE `table1` SET `price` = REPLACE(`price`, ',', '.')