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

Тема в разделе "Базы данных", создана пользователем dandandan, 17 дек 2009.

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

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    990
    Симпатии:
    267
    есть таблица:
    id | name

    как выбрать все элементы из таблицы и сделать так, чтобы русские строки (в ячейке name) были упорядочены по ASC, а иностранные по DESC
    поле name в каждой ячейке содержит либо русское название, либо иностраное, смешения букв разных алфавитов нету.
     
  2. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    например если в name буквы из русского алфавита то записать name в колонку ru если нет то null, дальше сортировать по этой колонке

    русские name после иностранных:
    Код:
    SELECT *, IF(name REGEXP '^[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]', name, NULL) ru
    FROM test_table
    ORDER BY ru ASC, name DESC 
    
    русские name перед иностранными:
    Код:
    SELECT *, IF(name REGEXP '^[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]', name, NULL) ru
    FROM test_table
    ORDER BY ru is null ASC, ru ASC, name DESC 
    
     
    BasTaller и dandandan нравится это.
Статус темы:
Закрыта.