1
Vývoj / Re:SELECT záznamu z tabulky s diaktrikou i bez
« Poslední příspěvek od mikrom kdy Dnes v 21:46:02 »V inej databaze (DB2, PostgreSQL, alebo Oracle) by som pouzil funkciu translate(), napr. takto:Zdravím.
Potřeboval bych poradit.
Existuje možnost udělat SELECT záznamů z tabulky s diakritikou i bez?
Potřeboval bych aby SQL dotazyKód: [Vybrat]SELECT * FROM profile WHERE last_name LIKE 'jašková';
aKód: [Vybrat]SELECT * FROM profile WHERE last_name LIKE 'jaskova';
vraceli stejný výsledek.
DB: Sqlite3
A co naistalovat sqlite3-pcre a pouzit REGEXP ?Kód: [Vybrat]sqlite> select * from TMP_TABLE where name REGEXP 'ja(s|š)kov(a|á)';
1|jaskova
2|jašková
Kód: [Vybrat]
select * from TMP_TABLE
where translate(name, 'áéíóúščťžý', 'aeiousctzy') = 'jaskova'
;
Ale v SQLite bohuzial translate() nie je.Nasiel som Oracle, PostgreSQL functions for SQLite: https://sqlite-libs.cs.ksu.edu/
Stiahol som to z https://github.com/sfaroult/sqlite_libs
Skompiloval som moduly orafn.so a pgfn.so avsak translate() ani v jednom z tychto modulov nefunguje spravne 'á' sice prelozi na 'a', ale 'š' neprelozi:
Kód: [Vybrat]
sqlite> .load ./orafn.so
sqlite> select
...> *,
...> translate(name, 'áéíóúščťžý', 'aeiousctzy') as name_t
...> from TMP_TABLE
...> ;
1|jaskova|jaskova
2|jašková|jaškova
Takze translate() vyzera byt v SQLite nepouzitelne (ale mozno existuje nejaka ina implementacia).
Ja by som pouzil to co funguje, t.j. hore uvedeny REGEXP