сортировка

zul

Новичок
сортировка

Честно говоря, может и голова что-то не варит уже :rolleyes:, но не могу сообразить, можно ли штатными средствами устроить сортировку таким образом:
Есть куча записей с двумя параметрами, значение которых может быть 1,2,3,4,5
Необходимо отсортировать все записи, чтобы первыми выводились те, у кого либо 1ый либо 2ой параметр = например 2
 

Апокалипсис

Guest
select * from table where paramert1='2' or parametr2='2'
 

zul

Новичок
эх

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

name par1 par2
-----------------------
| jack | 2 | 2 |
| bob | 3 | 2 |
| sam | 2 | 1 |
| nick | 1 | 3 |

надеюсь я наглядно нарисовал..
 

alpes

Весь мир на ладони
Если правильно тебя понял, надо сортировать, например по минимальному значению из двух полей? Тогда так:
PHP:
"SELECT *, IF(paramert1<paramert2, paramert1, paramert2) as mysort FROM mytable ORDER BY mysort ASC"
Если нет то уточни вопрос - как должны выводится остальные у которых нет 2, как попало? То тогда так:
PHP:
"SELECT *, IF(paramert1=2 OR paramert2=2, 1, 2) as mysort FROM mytable ORDER BY mysort ASC"
 

zul

Новичок
Прошу прощения, потребовалась более сложная сортировка, требуется помощь:
есть таблица
id status1 status2 time tryes
требуется сортировать так - если status1 или status2 = 4, то выводим их и сортируем по time, если status1 и status2 не равны 4, то сортируем по tryes (чем tryes = больше - выше выводится запись) , и если tryes становится = 0, то сортируем по id
пожалуйста, помогите начинающему сформировать такой мудрёный (для меня) запрос...
и прошу простить меня всех, кого я хоть немного анною =)
 

zul

Новичок
SELECT IF (CALLSTATUS1=4 OR CALLSTATUS2=4, 4, CALLTRYES) AS MYSORT, IF(CALLTRYES=0, ID, MYSORT) AS LSORT ORDER BY LSORT

возможна ли такая комбинация? Хотя мой вопрос всё ещё в силе - ежели поможете полным запросом - буду рад...
 

alpes

Весь мир на ладони
Блин, ну и задачи ты выдумываешь. Сделай три запроса да не парь мозги. Большего никто тебе не посоветует, ибо ты:
- собираешься сортировать по трем разным полям, структура и диапазон чисел которых тока тебе известна
- уж очень геморройный запрос должен получится с кучей ифов и приведенных значений для сортировки.
Так что шкурка вычинки не стоит...
PHP:
#1.
SELECT * FROM MyTable WHERE CALLSTATUS1=4 OR CALLSTATUS2=4 ORDER BY time ASC
#2.
SELECT * FROM MyTable WHERE CALLSTATUS1<>4 AND CALLSTATUS2<>4 AND tryes<>0 ORDER BY tryes DESC
#3.
SELECT * FROM MyTable WHERE CALLSTATUS1<>4 AND CALLSTATUS2<>4 AND tryes=0 ORDER BY id ASC
 
Сверху