sql >> Databáze >  >> RDS >> Mysql

Jak mohu kombinovat OR a AND v dotazech ORM

Po chvilce bádání jsem našel patch pro změnu ORM KO2 tak, aby měl open_paren() a close_paren(), ale výchozí chování orwhere v KO2 neumožňuje požadovanou operaci, takže mi parens nepomohou. Smířil jsem se s tím, že podrobná metoda where(), kterou používám, je pro mě nejlepší volbou vzhledem k mým časovým omezením. Dotaz jsem mírně upravil, aby vyhovoval některým zvláštnostem v mé instanci mysql.

Toto funguje a je to poslední dotaz pro tento projekt.

$unread = ORM::factory('record')
   ->where('(ServRepSupervisor = \'' . Auth::instance()->get_user()->name . '\' AND Followup_read = 0) OR (ServRepSupervisor = \'' . Auth::instance()->get_user()->name . '\' AND records.read = 0)')
   ->find_all();


  1. Zjednodušení dotazu s LIMIT v poddotazu a klauzulemi WHERE duplikovanými v poddotazu a vnějším dotazu

  2. MySQL:Překročena doba čekání na zámek

  3. SQL:Přerušení dotazu

  4. Chyba MySQL 2013