20. januar 2011 - 21:41Der er
16 kommentarer og 1 løsning
REGEXP eller LIKE
Hejsa, Er ny på dette site så ret mig hvis jeg gør noget galt.
Jeg har brug for følgende query. SELECT * FROM engine WHERE name REGEXP '(^test| test| test$)' men med en LIKE da REGEXP tager 1,92 sec at udføre og LIKE '%test%' tager 0,18 sec at udføre.
Hvad gør jeg her for at udføre ovenstående REGEXP så hurtigt ?
Jeg har netop fundet løsningen. SELECT * FROM engine WHERE (name LIKE 'test %' OR name LIKE '% test %' OR name LIKE '% test').
og følgende med flere forskellige søgeord.
SELECT * FROM engine WHERE (name LIKE 'test %' OR name LIKE '% test %' OR name LIKE '% test') AND (name LIKE 'test2 %' OR name LIKE '% test2 %' OR name LIKE '% test2')
Osv.
Ovenstående query udføres som REGEXP`en med med LIKE hastighed.
anyways, tror jeg vil iseng, synes umiddelbart ikke om din like, jeg ville måske bruge den jeg gav dig. Ved ikke lige hvorfor det andet kom med lige efter.. underligt.. Sov godt.
Jeg syntes ikke rigtigt jeg fik svar på hvad det der var. At det hedderr word boundery er fint meb det forklarr jo ikke hvad det er og hvordan det erstatter min like sant hvilke forbedringer den giver ?
Også har jeg ikke den fjernedte ide om hvordan jeg skal lukke.
Tak for det - det var til en rigtig stor hjælp for mig. Hvis jeg dog bare havde vidst at det betød det samme på dansk som drt betyder på engelsk så havde jeg jo slet ikke behøvet at spørge.....
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.