Avatar billede dadane Novice
08. november 2006 - 12:31 Der er 10 kommentarer og
1 løsning

Finde et element fra et sæt (repræsenteret i en blob)

Jeg har en tabel (user) som bl.a. har felterne id og group. ID er unik ID og group er en tinyblob som indeholder en kommasepareret mængde af fremmednøgler i tabellen group.

Jeg har bl.a. (Man kan ikke tegne tabeller her, - så jeg bruger lige en lidt anden notation)

ID=1
group= NULL

ID=2
group= 1

ID=3
group= 2, 17, 11

ID=4
group= 2, 1

Hvordan laver jeg en SQL som finder alle de elementer som er i gruppe 1 (har 1 i deres group). Ovenfor vil det så være de to elementer med ID hhv. 2 og 4.
Avatar billede barklund Nybegynder
08. november 2006 - 12:40 #1
Det er godt nok ikke en pæn måde at gøre det på. Lav en tabel med group_membedship som har:

user_id=2
group_id=1

user_id=3
group_id=2

user_id=3
group_id=17

user_id=3
group_id=11

user_id=4
group_id=1

user_id=4
group_id=2

Det er meget smartere og meget mere database-agtigt :)
Avatar billede dadane Novice
08. november 2006 - 12:47 #2
barklund - enig!!
Desværre står jeg ikke for design :(
Avatar billede barklund Nybegynder
08. november 2006 - 12:55 #3
Spark ham der "står for design" i løgene fra mig og sig, at han skal lave det om!
Avatar billede dadane Novice
08. november 2006 - 12:55 #4
barklund, - ja ja meget godt. Men det er ikke rigtigt det der er spørgsmålet.
Avatar billede barklund Nybegynder
08. november 2006 - 13:03 #5
I så fald er det:

SELECT id FROM user WHERE group_id RLIKE '(^|,)1($|,)'

Tror jeg det må være :)
Avatar billede dadane Novice
08. november 2006 - 13:17 #6
Barklund, - det virker! Tak. Send et svar og du får point

Hvad betyder RLIKE? At man kan bruge regulære udtryk???
Avatar billede dadane Novice
08. november 2006 - 13:21 #7
Google på RLIKE og mysql gav svaret (på mit tillægsspørgsmål ovenfor). Var slet ikke klar over MySQL kunne regexp. Lækkert!

Godt at have nogle spørgsmål engang i mellem, - så bliver man klogere...
Avatar billede barklund Nybegynder
08. november 2006 - 13:27 #8
RLIKE er faktisk blot et alias for REGEXP - men jeg synes at RLIKE siger bedre, hvad funktionen gør - nemlig "like-søgning via regulært udtryk" :)
Avatar billede barklund Nybegynder
08. november 2006 - 13:27 #9
Avatar billede barklund Nybegynder
08. november 2006 - 13:29 #10
Og et svar :)
Avatar billede barklund Nybegynder
08. november 2006 - 13:43 #11
Tark for points :)
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