Thread: MYSQL select

  1. #1
    cosmo2's Avatar
    Registered
    25/07/05
    Location
    Lennik
    Posts
    1,101
    iTrader
    100 (98%)
    Mentioned
    0 Post(s)

    MYSQL select

    Hello,

    Ben een (local)website aan het maken waar je panini stickers kan zoeken.
    Ik zit vast bij de filter functie waar ik een mysql query moet uitvoeren op de databank.
    In de filter zitten een paar opties zoals 'positie','land','soort sticker', etc....
    Het probleem zit hem dat de gebruiker eigenlijk alle filters MOET invullen. Maar dat is natuurlijk dwaas als je bijvoorbeeld alle stickers van de Belgische spelers wilt, is het de bedoeling dat de gebruiker gewoon 'land' selecteert en tis gebakken.

    Mijn vraag is nu hoe ik een query schrijft die alles dat 'null' is negeert en alleen op de ingevulde parameters zoekt?

    Bijvoorbeeld ik zoek alle Belgische spelers:
    Code:
    SELECT stickers.*, s.title AS sectitle, s.group, p.title AS postitle FROM stickers 
    			INNER JOIN sections AS s 
    			INNER JOIN positions AS p 
    			WHERE stickers.section_id=s.id 
    			AND stickers.position=p.id
                            AND stickers.country='Belgium'
    			AND stickers.title LIKE null
    			AND s.id= null
    Daar zit het probleem dat hij dus alles zoek waar 'stickers.title' én 's.id' letterlijk 'null' is en ik wil gewoon dat hij alles wat null is negeert.

    Hopelijk is het wat goed uigelegd
    no votes  

  2. #2
    Jerre Muesli's Avatar
    Registered
    08/09/02
    Location
    -
    Posts
    2,044
    iTrader
    9 (100%)
    Mentioned
    0 Post(s)
    Reputation
    3/6
    Zoek eens op like '%'
    no votes  

  3. #3
    Audiofiel's Avatar
    Registered
    10/07/04
    Location
    Edegem
    Posts
    262
    iTrader
    21 (100%)
    Mentioned
    0 Post(s)
    wat je zoekt is zoiets :
    select * from table1
    where (@param1 is null or col1 = @param1)
    and (@param2 is null or col2 = @param2)
    X360 gamertag: Rhando
    Currently playing: Streetfighter IV, Star Ocean 4:TLH, Mass Effect
    no votes  

  4. #4
    grafzerkpisser's Avatar
    Registered
    27/09/11
    Location
    Grimbergen
    Posts
    563
    iTrader
    40 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/7
    is inderdaad wat audiofiel zegt
    None are more hopelessly enslaved than those who falsely believe they are free.
    no votes  

  5. #5
    YaMo's Avatar
    Registered
    19/02/06
    Location
    -
    Posts
    4,048
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    2/73
    Die lijnen gewoon niet toevoegen aan je query als die waarden niet ingevuld zijn.
    no votes  

  6. #6
    Cycloon's Avatar
    Registered
    18/01/04
    Location
    Melle
    Posts
    10,535
    iTrader
    56 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/102
    Wat audiofiel toont is idd the way to go voor optionele parameters. Maar als je je query string toch dynamisch kan opbouwen kan je best zoals YaMo aangeeft de where condities simpelweg niet toevoegen.
    “In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
    PSN: Cycloon - Final Fantasy XIV: A realm reborn character
    no votes  

  7. #7
    cosmo2's Avatar
    Registered
    25/07/05
    Location
    Lennik
    Posts
    1,101
    iTrader
    100 (98%)
    Mentioned
    0 Post(s)
    Dynamisch opbouwen gaat niet echt. Ik programmeer in Symfony2 en al mijn queries zijn statisch.
    Ik probeer het eens zoals audiofiel zegt.

    EDIT:
    Thanks! Werkt perfect!
    Last edited by cosmo2; 14-07-2014 at 23:37.
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in