Hét vraag- en antwoordplatform van Nederland

Mag je in een SQL-query haakjes gebruiken?

Bijvoorbeeld:
dit:
SELECT * FROM tools WHERE 1 AND engels = "1" OR nederlands = "1" AND ID IN (SELECT ID FROM tools WHERE win7 = "1")
wil ik veranderen in:
SELECT * FROM tools WHERE 1 AND (engels = "1" OR nederlands = "1") AND ID IN (SELECT ID FROM tools WHERE win7 = "1")

Verwijderde gebruiker
14 jaar geleden
Geef jouw antwoord
0 / 2500
Geef Antwoord

Het beste antwoord

ja dat kan :)

Toegevoegd na 45 seconden:
nog eventjes gegoogled voor de zekerheid zie bron:
Verwijderde gebruiker
14 jaar geleden

Andere antwoorden (2)

Ja hoor, in een sql-query kun en mag je haakjes gebruiken.
Ik vraag me alleen af wat je wilt doen met:
Where 1 ...

Je tweede voorbeeld is beter dan het eerste.
Als je of engels of nederlands 1 wilt hebben een daarnaast moet je selectie voldoen aan ID in, dan moet je het stuk met OR erin altijd tussen haakjes zetten, anders krijg je minder betrouwbare resultaten.
Je grijpt op het einde weer terug naar dezelfde tabel (innerjoin), is het dan niet handiger om deze in dit geval mee te nemen in je eerste query:

Zoiets als dit:
SELECT * FROM TOOLS
WHERE (ENGELS = 1 OR NEDERLANDS = 1)
AND WIN7= 1 ;
Verwijderde gebruiker
14 jaar geleden
Ja dat mag.

Hou er rekening mee dat als je een 'where 1=1' clausule er in hebt staan je bij niet opletten een altijd geldende query kan maken. Dat heb je niet nodig & moet er gewoon uit.

Ook geneste queries zijn hier niet nodig EN onnodig langzaam.

Dus gewoon:

select [field names]
from [table names]
where [query argumenten]

Er is GEEN ENKELE goede reden om de querie zoals je hem nu laat zien te gebruiken. OOK niet als je veel verschillende argumenten gaat gebruiken. Ik heb zelf in een project meer dan 8 tabellen, 30 velden en 8 of 9 beperkingen nodig, allemaal via het basis schema met joins
Verwijderde gebruiker
14 jaar geleden
Deel jouw antwoord
0 / 2500
Geef Antwoord
logo van Kompas Publishing

GoeieVraag.nl is onderdeel van Kompas Publishing