Autor Zpráva
JardaB
Profil
Zdravím,

je možné nějak formulovat dotaz, kdy mám jednoduchou tabulku s id a slovo a chci najít slova, která mají 10 znaků a druhé a sedmé písmeno je ''a"? Nebo tohle u MySQL dtb nelze? Příp. bych mohl ukládat i délku do dalšího sloupce, což by mi nevadilo.
lionel messi
Profil
SELECT `slovo` FROM tabulka WHERE `slovo` LIKE _a____a___

Dôležitý je operátor LIKE — len sa neprepočítaj v podtržítkach — na začiatku je jedno, potom 4 a potom 3.
JardaB
Profil
Děkuji a jak tohle bude fungovat v dtb s 60 tis slov, protože od LIKE často odrazují kvůli rychlosti
juriad
Profil
JardaB:
Nelze poradit lépe, než aby sis to vyzkoušel a změřil.

Pokud je těchto pravidel málo: třeba filtrovat slova jen podle 2. a 7. písmena, tak by šlo vytvořit nový sloupec (sloupce), ve kterém by byly pouze tyto znaky. A následně hledat nad tímto sloupcem.

Index by ti pomohl jen v případě, že by ses ptal na 1. znak. Indexy pracují doleva.
JardaB
Profil
Vyzkoušíme, uvidíme... děkuji
Kajman
Profil
Pokud takové dotazy budou časté, pomohlo by do tabulky předpočítávat délku slova a uložit si do pomocné tabulky i písmena slova po jednom znaku (univerzálnější bude 10 řádku pro desetipísmenné slovo než 20 sloupců pro všechna slova, ale z pohledu rychlosti si nejsem jistý, které z řešení bude lepší).

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: