18. december 2008 - 12:24Der er
4 kommentarer og 2 løsninger
LIKE kommando - bare den anden vej rundt
velkendt
kolonne LIKE BLAH*
giver alle de poster i kolonne der begynder med BLAH
Men hvis jeg nu har følgende poster i kolonne
BLAH* BL* BLA* ANDET
og jeg så vil finde dem der matcher BLAH123. Altså de tre første men ikke den sidste.
Kan I se hvad jeg mener - det er LIKE kommandoen bare den anden vej. Og det kan jeg altså ikke få til at virke og jeg gider ikke gå alle poster igennem (hvis jeg kan slippe).
MAn bruger % eller _ som wildcards. % matcher et hvilket som helst antal tegn, også nul, så:
... WHERE kolonne LIKE 'BL%' ... - giver dem der starter med 'BL', efterfulgt af intet eller noget
... WHERE kolonne LIKE 'BL_' ... - giver dem der er lig 'BL' og præcis et tegn mere
... WHERE kolonne LIKE '%BL%' ... - giver dem der indeholder 'BL'
... WHERE kolonne LIKE '_%@_%._%' - giver et nogenlunde check for om det er en emailadresse.
Desuden er der mulighed for NOT LIKE, hvis du vil det. Om du siger 'BL%' LIKE kolonner eller kolonne LIKE 'BL%', det er præcis det samme.
Det jeg ikke forstår er at " ... kolonne LIKE BLAH* ... " vil fejle med et brag, medmindre du har en kolonne der hedder BLAH*. * er ikke et wildcard i MSSQL. Jeg forstå heller ikke at det du ønsker skulle være det omvendte af dette.
Ja, en INSTR funktion eksisterer skam også i MS SQL ;-)
Du siger bare: SELECT felt1, felt2, felt3 FROM dintabel WHERE charindex('søgefterhvad...', feltnavn) > 0
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.