ultddave
20 September 2010, 23:48
Hey,
Ik zit met een probleem ivm pattern matching in SQL.
Ik heb een kolom in men database met allemaal id's, komma seperated. Bijvoorbeeld:
1,5,48,55,945,12135,654656
Nu wil ik een query uitvoeren om te kijken of het id "5" erin zit.
LIKE '%5%' zorgt ervoor dat ook getallen zoals 12135 als "juist" beschouwd worden omdat daar ook een "5" in zit.
LIKE '%,5,%' zorgt ervoor dat alleen het getal 5 gezien wordt. Wat de bedoeling is. Maar dit werkt uiteraard niet als het getal 5 vooraan of achteraan de rij staat.
Bijvoorbeeld, de rij:
5,15,27
Zal geen resultaat opleveren met LIKE '%,5,%' omdat er geen komma voor 5 staat.
Maar hiervoor vond ik geen oplossing met de beschikbare wildcards van SQL.
Ik kan uiteraard altijd vooraan en achteraan een komma toevoegen, zodat de lijst er zo uit ziet:
,5,15,27,
Dan werkt het perfect. Maar dat ziet er niet echt uit vind ik persoonlijk. Misschien weet iemand een betere oplossing?
PS: Er staan maximaal een 26 tal id's in die lijst. En er moeten ongeveer een 100.000 rijen gechecked worden met die SQL query.
Mvg,
Dave
Ik zit met een probleem ivm pattern matching in SQL.
Ik heb een kolom in men database met allemaal id's, komma seperated. Bijvoorbeeld:
1,5,48,55,945,12135,654656
Nu wil ik een query uitvoeren om te kijken of het id "5" erin zit.
LIKE '%5%' zorgt ervoor dat ook getallen zoals 12135 als "juist" beschouwd worden omdat daar ook een "5" in zit.
LIKE '%,5,%' zorgt ervoor dat alleen het getal 5 gezien wordt. Wat de bedoeling is. Maar dit werkt uiteraard niet als het getal 5 vooraan of achteraan de rij staat.
Bijvoorbeeld, de rij:
5,15,27
Zal geen resultaat opleveren met LIKE '%,5,%' omdat er geen komma voor 5 staat.
Maar hiervoor vond ik geen oplossing met de beschikbare wildcards van SQL.
Ik kan uiteraard altijd vooraan en achteraan een komma toevoegen, zodat de lijst er zo uit ziet:
,5,15,27,
Dan werkt het perfect. Maar dat ziet er niet echt uit vind ik persoonlijk. Misschien weet iemand een betere oplossing?
PS: Er staan maximaal een 26 tal id's in die lijst. En er moeten ongeveer een 100.000 rijen gechecked worden met die SQL query.
Mvg,
Dave