tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

PostgreSQL a funkce v ORDER BY

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ý!