[PHP, MySQL] Array als WHERE clause

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • GdeKeijzer
  • Registratie: Januari 2001
  • Laatst online: 04-09 09:08
Een tabel in DB bevat licenties voor aangeschafte software.
Een user heeft toegang tot deze software.

In user tabel staat kolom met software-id's welke hij/zij heeft toegewezen gekregen.
Bijvoorbeeld 1,3,4,7,9 (dus 5 softwarepakketen)

Hoe kan ik nu SQL-Query loslaten op de software-db tabel waar ik records id's terugkrijg welke voldoen aan 1,3,4,7 of 9. Zonder 5 afzonderlijke OR WHERE queries te maken.

Niet omdat het moet, maar omdat het kan....


Acties:
  • 0 Henk 'm!

  • Shakespeare2000
  • Registratie: September 2002
  • Laatst online: 20-09 13:55
Met "IN (value,...)" zoals het in de MySQL docs staat. Wordt het voor jou dus
code:
1
where ... in (1,3,4,7,9)

[ Voor 12% gewijzigd door Shakespeare2000 op 14-02-2005 11:35 ]

The whole thing is based on respect, respect to the music, respect to the DJ's,
respect to the crowd and respect to one another!


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

Je hebt letterlijk "1,3,4,7,9," in je DB staan? Dat lijkt erop dat je je DB wat beter moet gaan normaliseren zodat er een tabel komt waarin per userid een software id komt om de koppeling tussen user en software aan te geven. Alleen dan kan je makkelijk met standaard SQL de gegevens ophalen die je wilt hebben.

Een tweede optie zou zijn om met MySQL regexp iets te verzinnen zodat je de juiste waarden kan ophalen. Dit is qua performance echter niet helemaal optimaal ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • GdeKeijzer
  • Registratie: Januari 2001
  • Laatst online: 04-09 09:08
het 1,3,4 etc staat nog niet letterlijk in m'n db. Ben nog bezig met ontwerp-fase voor dit gedeelte.
Liep alleen tegen dit vraagstuk aan.

Andere oplossing had ik reeds bedacht om per softwareaankoop 1 record per licentie en daaraan een userid hangen.

Niet omdat het moet, maar omdat het kan....