Autor | Zpráva | ||
---|---|---|---|
JardaB Profil |
#1 · Zasláno: 3. 4. 2014, 10:30:03
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 |
#2 · Zasláno: 3. 4. 2014, 10:35:03
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 |
#3 · Zasláno: 3. 4. 2014, 10:39:22
Děkuji a jak tohle bude fungovat v dtb s 60 tis slov, protože od LIKE často odrazují kvůli rychlosti
|
||
juriad Profil |
#4 · Zasláno: 3. 4. 2014, 10:53:06
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 |
#5 · Zasláno: 3. 4. 2014, 10:58:20
Vyzkoušíme, uvidíme... děkuji
|
||
Kajman Profil |
#6 · Zasláno: 3. 4. 2014, 13:15:10
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ší).
|
||
Časová prodleva: 10 let
|
0