Wpis z mikrobloga

używam biblioteki #zendframework do obsługi bazy danych muszę stworzyć takie zapytanie:

SELECT * FROM orders ORDER BY statusid=2 DESC, date DESC


Robię to tak:
$select = $list->select();
$select->order('statusid='. ConfigManager::getConfigValue('mod', 'FORACCEPTANCEIDSTATUS') .' DESC');

Jednak tworzy mi taki kod:

orders.order_id FROM orders ORDER BY status_id=13 DESC, orders.date desc


Czyli błędnie bierze w apostrofy mój order, zamiast wziąć samą kolumnę bierze całość, przez co traktuje 'status_id=13' jako kolumnę.

#php #mysql #sql #webdevhelp
  • 6
  • Odpowiedz
@kolesnikov: Już ogarnąłęm, dzięki. Nie używam w pracy mysqla tylko sql server i tam taka składnia nie jest dostępna. Trzeba by było:

order by case when status_id=13 then 1 else 0 end desc
  • Odpowiedz