Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][Doctrine] Złożone zapytanie z niewiadomą ilością OR
evertras
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.03.2011

Ostrzeżenie: (0%)
-----


Jak napisać zapytanie, które da następujący efekt:

SELECT * FROM tabela WHERE W1 and (W2 or W3 or W4 or ... or Wn ) and W0

W2 or W3... jest generowane poprzez foreach dlatego nie wiem ile będzie tych warunków. Jak mogę to wszystko razem skleić w jednym zapytaniu ?
Go to the top of the page
+Quote Post
arecki
post
Post #2





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

Ostrzeżenie: (0%)
-----


Na szybko wymyślone bo nie pamiętam jak to zrobić z wykorzystaniem mechanizmów doctrine'a
  1. <?php
  2. $subquery = '';
  3. $subqueryParams = array();
  4.  
  5. $conditionsOR = array(
  6. array('t.liczba1', '=', 53),
  7. array('t.liczba2', '>', 100),
  8. array('t.liczba3', '<', 20),
  9. );
  10.  
  11. foreach($conditionsOR as $w)
  12. {
  13. $subquery .= $w[0] . ' ' . $w[1]. ' ? OR ';
  14. $subqueryParams[] = $w[2];
  15. }
  16.  
  17. $subquery = substr($subquery, 0, -3);
  18.  
  19. $results = Doctrine::getTable('Tabela')->createQuery('t')->where('t.dane = ? AND t.user_id = ? AND ('.$subquery.')', array_merge(array('dzisiaj', 2), $subqueryParams))->execute();
  20.  
  21. ?>

Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie lepiej/prościej wykorzystać IN zamiast łączenia warunków OR?
Go to the top of the page
+Quote Post
arecki
post
Post #4





Grupa: Zarejestrowani
Postów: 222
Pomógł: 35
Dołączył: 6.02.2005

Ostrzeżenie: (0%)
-----


Ale ja nie przyjąłem założenia że wszystkie warunki dotyczą tego samego pola (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 18:40