LINUX.ORG.RU

Вряд-ли разумно делать это средствами SQL'а.
Можно же загрузить данные в массив,и вытащить от туда нужнуюзапись с type=123

ovax ★★★
()
Ответ на: комментарий от OldFornit

ему нужно, чтобы только одна запись была c type=123

Может такой вариант прокатит, правда он дорогостоящий

SELECT * FROM records WHERE type = 123 limit 0,1

union

SELECT * FROM records order by type

aydar ★★★★★
()

если такая запись только одна то

order by type = 123 desc, type

иначе боюсь только юнионы но это плохое решение.

roller ★★★
()
Ответ на: комментарий от roller

>иначе боюсь только юнионы но это плохое решение.

Нормальное решение. Ну, будет два подзапроса вместо одного - фигня полная же при наличии индексов. Если там, конечно, не сотни миллионов записей или не нужно по 10 тыс. раз в секунду данные дёргать.

...

Хотя я бы просто на двух запросах сделал.

KRoN73 ★★★★★
()

Если правила сортировки имеют тенденцию усложниться, то вместо использования union проще завести отдельную колонку (для type=123 содержащую например 1, для всех остальных 0) и сортировать вначале по ней, потом по type.

ef37 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.