Avatar billede mrfunder Nybegynder
25. april 2010 - 14:40 Der er 10 kommentarer og
1 løsning

Lav udtræk hvor streng indeholder tal

Hej Eksperter,

Jeg vil gerne have returneret en række hvor feltet "kategori" indeholder et bestemt tal.

Feltet kategori kan indeholde flere tal, dog altid adskilt med komma.

Udtrækker skal matche mit bestemte tal i kolonnen.

Eksempel:

Find tal = 2;
Kolonnen = 1,4,5

Her skal den altså ikke returnere noget, eftersom 2 ikke findes i kolonnen.

Jeg håber jeg har forklaret mig forståeligt.

Findes der en funktion til dette?

På forhånd tak
Avatar billede limemedia Nybegynder
25. april 2010 - 15:06 #1
SELECT *
FROM tabel
WHERE kolonnen = 2
Avatar billede DGudiksen Nybegynder
25. april 2010 - 15:07 #2
Jeg ved ikke om det kan lade sig gøre sådan her:

$nummer = 2
mysql_query("SELECT * FROM tabel WHERE kategori='$nummer%s'");
Avatar billede arne_v Ekspert
25. april 2010 - 15:10 #3
... WHERE LOCATE(',2,', CONCAT(',',felt,','))
Avatar billede arne_v Ekspert
25. april 2010 - 15:11 #4
Men langt bedre: vaelg en anden database struktur !

Felter med vaerdier adskilt af komma er FY FY i databaser.
Avatar billede mrfunder Nybegynder
25. april 2010 - 15:35 #5
@arne_v

Skal der være , på begge sider af 2 - hvis nu 2 skulle ligge som den første? Eks. 2,3,4

WHERE LOCATE(',2,', CONCAT(',',felt,','))
Avatar billede mrfunder Nybegynder
25. april 2010 - 15:45 #6
Umiddelbart får jeg intet returneret ved:

WHERE b_categories = LOCATE(',".$blog_category.",', CONCAT(',',b_categories,',')) ORDER BY

$blog_category indeholder 2 og b_categories i min række indeholder 2,3,4
Avatar billede arne_v Ekspert
25. april 2010 - 15:47 #7
Det er derfor jeg konkatanerer komma foer og efter feltet.
Avatar billede mrfunder Nybegynder
25. april 2010 - 15:49 #8
Det skal selvfølgelig ikke være b_categories = men derimod men locate.

Tak for hjælpen - smider du et svar? :)
Avatar billede arne_v Ekspert
25. april 2010 - 15:49 #9
Udskriv din SQL og se om den indeholder det du tror.

,2,  er en substring af ,2,3,4,
Avatar billede arne_v Ekspert
25. april 2010 - 15:50 #10
Ja selvfoelgelig.

Maaske var det paenere med LOCATE(...) > 0.

Og svar.
Avatar billede arne_v Ekspert
25. april 2010 - 15:51 #11
Oh jeg menr stadigt at du boer aendre strukturen.

Det her komma separerede felt vil blive pinefuldt aar efter aar.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester