Autor Zpráva
spartan13
Profil
Dobrý den,
potřebuji udělat výběr z databáze, kde vyberu pomocí klauzule where regulárním výrazem, který odpovídá dané proměnné.

aneb výběr z databáze, kde bude např. v sloupci záznam "řešení světel" a já budu mít k dispozici řetězec "reseni-svetel" pomocí kterého potřebuji vybrat tento záznam z DB.

Díky za odpovědi.
Radek9
Profil
spartan13:
Pokud má sloupec kódování utf8_general_ci, tak je to jednoduché:
SELECT * FROM `tabulka` WHERE REPLACE(`sloupec`, ' ', '-') LIKE '%reseni-svetel%' COLLATE 'utf8_general_ci'
Pokud jiné, tak si budeš muset hrát s diakritikou a popřípadě použít i REGEXP namísto LIKE.
__construct
Profil
Radek9:
Predpokladám, že to chce používať na hľadanie podľa URL adresy a Tvoje riešenie je pre bežné používanie neefektívne.

spartan13:
Myslím, že najlepšie bude ak si vytvoríš v tabuľke stĺpec s tým URL formátom (môžeš použiť napr. túto funkciu), vytvoríš nad ním UNIQUE INDEX a budeš hľadať v ňom.
Joker
Profil
spartan13:
potřebuji udělat výběr z databáze, kde vyberu pomocí klauzule where regulárním výrazem, který odpovídá dané proměnné.
aneb výběr z databáze, kde bude např. v sloupci záznam "řešení světel" a já budu mít k dispozici řetězec "reseni-svetel" pomocí kterého potřebuji vybrat tento záznam z DB.

První řádek požaduje něco jiného než druhý.
Chtělo by to napsat, jak jsou ty řetězce vlastně transformované, protože takhle se můžeme jen dohadovat. Ale to co napsal __construct bude fungovat.
spartan13
Profil
__construct:
to by znamenalo, že budu mít v DB víceméně "duplicitní sloupec" jelikož jeden by byl s diakritikou a druhý bez ní.

Myslíte, že to bude lepší, pokud mysql nebude muset nic vyhledávat s použitím regulárních výrazů nebo nějakého přepisování?
__construct
Profil
spartan13:
V prvom rade by si mal napísať na čo to konkrétne potrebuješ (či som si tipol správne) aby sme Ti pomohli vymyslieť optimálne riešenie.

bude lepší, pokud mysql nebude muset nic vyhledávat s použitím regulárních výrazů nebo nějakého přepisování
Regulárne výrazy spotrebovávajú celkom veľké množstvo systémový prostriedkov a pokiaľ by sa to malo robiť v tabuľke s väčším počtom riadkov tak by si sám prišiel na to, že to nie je dobré riešenie.
spartan13:
V tom prípade je určite správnou voľbou to čo som písal vyššie [#3].
spartan13
Profil
__construct:
Ano, tipnul jsi to správně přesně se jedná o tabulku s atributy název a stránka. Různá menu stránek se právě generují z těchto názvů a když je uživatel přímo na dané stránky vkládá se jeho obsah.
spartan13
Profil
Když už je toto vlákno otevřeno, pořád řeším problém s diakritikou (ř,č) například š,á,í se uloží normálně, jde o přímý vstup do phpmyadmin, kde když vložím tyto písmena "vznikne" z nich vždy otazník, ať nastavím set names utf8, cp1250, nebo i jiné.

pomocí php se vše vkládá správně ale do databáze se pak uloží znak např. takto: "Hrdlièka" což se ale při výběru správně zobrazí jako Hrdlička
1Pupik1989
Profil
spartan13: Kódování souboru je stejné jako kódování nastavené v SET names?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0