Oznámení
Omlouváme se, provoz fóra byl ukončen
PostgreSQL a funkce v ORDER BY
Upozornění: Tohle vlákno je hodně staré.
před 10 lety
- Petr Tvaroha
- Člen | 25
Zdravím,
mám dotaz, kde potřebuju řadit podle funkce. Když použiji modifikátor %by, tak mi to obalí celý název funkce do uvozovek, což nepotřebuji. Dá se to nějak vypnout, obejít?
Příklad:
<?php
$by = array (
'funkce(nazev_pole)' => 'ASC',
'jine_pole' => 'DESC'
);
dibi::test("SELECT * FROM table ORDER BY %by", $by);
// vysledek: SELECT * FROM table ORDER BY "funkce(nazev_pole)" ASC, "jine_pole" DESC
// potrebuji: SELECT * FROM table ORDER BY funkce(nazev_pole) ASC, "jine_pole" DESC
?>
Editoval Petr Tvaroha (2. 12. 2009 7:51)
před 10 lety
- Ola
- Člen | 389
Možná by mohlo fungovat tohle:
<?php
$by = array (
array('%sql', 'funkce(nazev_pole)') => 'ASC',
'jine_pole' => 'DESC'
);
?>
Editoval Ola (3. 12. 2009 16:12)
před 10 lety
- Petr Tvaroha
- Člen | 25
Tohle nefunguje. Pole nemůže být klíčem pole.
PT
před 10 lety
- blacksun
- Člen | 181
Řešil jsem podobný problém na MySQL, pomohlo mi složení dotazu pomocí pole, viz https://forum.dibiphp.com/…funkci-field
před 10 lety
- Petr Tvaroha
- Člen | 25
Díky za odpověď. Asi to bude jediná cesta. S dibi teprve začínám, takže zkouším různé možnosti. Přes víkend jsem přišel na chuť DibiFluent a tam už si s tím nějak poradím.
před 10 lety
- David Grudl
- Nette Core | 6806
V poslední verzi funguje:
<?php
$by = array (
array('funkce(nazev_pole) ASC'),
'jine_pole' => 'DESC'
);
?>
před 10 lety
- Petr Tvaroha
- Člen | 25
Díky, skvělý!