Moderator |
|
Netter zou zijn om hier een koppeltabel van te maken, maar als je alle gekochte downloads in één kolom wilt opslaan dan kan dat.
Moet je wel op 2 dingen letten:
1. Als je kolom VARCHAR is, is je ruimte beperkt (255 karakters), dus als iemand op een gegeven moment veel gekochte_downloads heeft dan kan dit voor problemen gaan zorgen. Misschien is het beter om voor het type van deze kolom gebruik te maken van TEXT (als je dit al niet deed).
2. Je kunt bij textuele kolommen géén gebruik maken van IN - wat je hier wilt doen waarschijnlijk? Kijken of een bepaalde gekochte download voorkomt in een rij van gekochte downloads.
Stel dat gekochte_downloads '4,6' bevat, dan levert het volgende 1 (true) op:
SELECT 4 IN(gekochte_downloads)
SELECT 4 IN(gekochte_downloads)
Maar het het volgende levert false!!!
SELECT 6 IN(gekochte_downloads)
SELECT 6 IN(gekochte_downloads)
Dit komt waarschijnlijk omdat IN alleen werkt met numerieke waarden, en alles na de (eerste) komma als troep beschouwt.
De oplossing voor dit probleem is het aanleggen van een koppeltabel, of een andere (eenvoudigere) oplossing waarbij je gebruik kunt blijven maken van een comma-separated tekst-kolom. Deze oplossing kun je van me kopen . |