За последние 24 часа нас посетили 17430 программистов и 1607 роботов. Сейчас ищут 922 программиста ...

Сортировка двух полей

Тема в разделе "MySQL", создана пользователем ckjet, 17 май 2013.

  1. ckjet

    ckjet Активный пользователь

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    У меня есть запрос
    Код (Text):
    1. select name from area order by ...
    Есть 2 поля в котором хранятся именя name и name_en. Если name_default=1 то используется поле name_en, если 0 - то name.

    Нужно сделать сортировку по имени, но в зависимости от используемого.
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    я правильно понял что name_default это еще одно (как минимум третье) поле все в той же таблице? тогда все легко - агрегируйте еще одно поле, подставляя в него значение из двух других, в зависимости от значения вот этого третьего. и по этому агрегированному полю делайте сортировку.
     
  3. ckjet

    ckjet Активный пользователь

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    Решил так, кому пригодится

    Код (Text):
    1. (CASE WHEN name_default =1 THEN name_en ELSE name END) ASC
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    оно и есть. удачи!