За последние 24 часа нас посетили 18934 программиста и 1615 роботов. Сейчас ищут 722 программиста ...

Запрос с сортировкой по алфавиту, но чтобы первым выби....

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

  1. SergeyEremeev

    SergeyEremeev Новичок

    С нами с:
    6 окт 2013
    Сообщения:
    5
    Симпатии:
    0
    Запрос с сортировкой по алфавиту, но чтобы первым выбирались данные которые начинаются на букву «Л»

    Есть табличка с названием shop_items в ней содержится все товары интернет магазина.
    На данный момент запрос на выборку данных выглядит вот так:
    PHP:
    1. $result_tovar = mysql_query ("
    2. SELECT
    3. shop_items.id,
    4. shop_items.name,
    5. shop_items.item_id,
    6. shop_itemimages.filename,
    7. shop_prices.value
    8. FROM shop_items
    9. LEFT JOIN shop_prices ON shop_prices.item_id=shop_items.item_id
    10. LEFT JOIN shop_itemimages ON shop_itemimages.item_id=shop_items.item_id
    11. WHERE shop_items.parent_group_id='$group_id'
    12.  
    13. AND owner_id='0'
    14.  
    15.  
    16. limit 0, 10
    17. ");
    18. $myrow_tovar = mysql_fetch_assoc($result_tovar);
    Необходимо выбрать данные так чтобы чтобы изначально вытаскивались те которые начинаются на букву «Л» а потом все остальные.
    Помогите пожалуйста если кто в курсе как это реализовать)
     
  2. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    Re: Запрос с сортировкой по алфавиту, но чтобы первым выби..

    сразу на ум приходит только 1
    WHERE shop_items.parent_group_id='$group_id' --не знаю что это - ну пускай останется
    and shop_items.name like 'Л%'
    -блаблабла....
    UNION повторяем почти весь запрос за исключением
    and shop_items.name not like 'Л%'

    я конечно не навижу UNION изза его тяжести но пока реально ничего другого предложить не могу
     
  3. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Re: Запрос с сортировкой по алфавиту, но чтобы первым выби..

    оффтопик: после апгрейда в каком-то лохматом году, на этом форуме НЕ работает тег [ php ], всем всё равно :)
    пользуйтесь [ code=php ]

    одно из двух
    а) сортировать уже на стороне PHP, например функцией usort, ИЛИ
    б) создать два почти одинаковых запроса и склеить их через UNION ALL. в первом запросе WHERE ... LIKE 'л%' а во втором запросе WHERE ... NOT LIKE 'л%'

    Добавлено спустя 36 секунд:

    пишется слитно

    Добавлено спустя 1 минуту 52 секунды:

    p.s.
    в) есть трюковой вариант Stackoverflow: mysql custom order
    мой пример по его мотивам