Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
#2 Hvordan vil du ligge vægt på navn? Mener du sådan at den sortere efter navn først?
Prøv med: SELECT * FROM table WHERE navn LIKE '%abe%' OR indhold LIKE '%abe%' OR land LIKE '%afrika%' ORDER BY navn, indhold, afrika
Denne vil tjekke om en række enten indeholder abe i navn, abe i indhold, eller afrika i land, og tage den med, hvis den opfylder en af kriterierne.
Det siges at Like '%abe%' betyder at det der står i rækken bare skal indeholde ordet abe, da % betyder hvilket som helst tegn, så mange gange som nødvendigt.
Derudover vil den derefter sortere rækkerne alfabetisk, først efter navn, derefter efter indhold og til sidst efter land
SELECT * FROM table WHERE ((navn LIKE '%abe%' OR indhold LIKE '%abe%') AND (land LIKE '%afrika%'))
Det med at ligge vægt på navn betyder at hvis du nu har tabel
::Jeg ved ikke om det visses rigtigt pga. skrift-type:: | id | navn | indhold | land | +----+-------+-----------------------------------+--------+ | 1 | abe | en abe spiser bananer | Afrika | | 2 | banan | at aber spiser bananer er en løgn | Afirka | | 3 | abe | aben og fluen er ikke gode venner | Afrika |
Så vil id:1 komme først herefter id:3 og til sidst id:2 Fordi at selv om abe forekommer i 'navn' eller 'indhold' så er 'navn' vigtigst.
Mit mål er ikke at bruge like='% %' men match()
hvis jeg bare skulle søge efter abe i 'navn' og 'indhold' ville det se sådan ud i min verden.
SELECT DISTINCT MATCH(navn, indhold) Against ('abe' IN BOOLEAN MODE) as score, id, navn, indhold, land FROM articles WHERE MATCH(navn, indhold) Against ('abe' IN BOOLEAN MODE) ORDER BY score DESC
Bare for sjov. | id | navn | indhold | land | +----+----------+-----------------------------------------------+---------+ | 1 | abe | en abe spiser bananer | Afrika | | 2 | banan | at aber spiser bananer er en løgn | Afirka | | 3 | abe | aben og fluen er ikke gode venner | Afrika |
SVAR: man kan tilsynladene kun sortere efter en match() men kan kan godt bruge mere end en match i WHERE
SELECT DISTINCT MATCH(navn, indhold) Against ('abe' IN BOOLEAN MODE) as score, id, navn, indhold, land FROM articles WHERE (MATCH(navn, indhold) Against ('abe' IN BOOLEAN MODE)) AND (MATCH(andet) Against ('andet' IN BOOLEAN MODE)) ORDER BY score DESC
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.