Hallo,

Ik ben bezig met het uitlezen van een database. Graag zou ik willen sorteren op een aantal 'fields'. Kan iemand mij vertellen of er soms een limiet aan het aantal keren dat je 'AND' kan gebruiken is?

Dit werkt wel:
SELECT * FROM groepen WHERE groep='1' AND title LIKE '%trefwoord%' OR text LIKE '%trefwoord%'

Dit werkt niet:
SELECT * FROM groepen WHERE groep='1' AND soort='1' AND title LIKE '%trefwoord%' OR text LIKE '%trefwoord%'

Het enige verschil in deze beide regels is dat bij de niet werkende versie er soort='1' aan toegevoegd is.

Bij voorbaat dank! ;)

Mafcase
Je doet toch wel zo he?

<?php

$q = "SELECT * FROM groepen WHERE groep='1' AND title LIKE '%".mysql_real_escape_string($_POST['trefwoord'])."%' OR text LIKE '%".mysql_real_escape_string($_POST['trefwoord'])."%'"

?>
hehe, zover was ik nog niet, eerst maar eens zien dat 't werkt...
Ik ben eruit! In ieder geval bedankt voor je reactie!

Voor de (evt andere newbies) die misschien ooit ook tegen dit probleem aanlopen:

Ik heb ergens op het net iets gelezen over OR maar de query waar die in gebruikt werd was niet zo uitgebreid als ik m nodig heb.

De OR 'doet wat ie zegt', hij werkt dus idd als een OF. Mijn interpretatie was dus dat de OR alleen maar tussen de LIKE's in hoorde, hetgeen dus niet het geval is.

Dit werkt niet goed:
SELECT * FROM groepen WHERE groep='1' AND soort='1' AND title LIKE '%trefwoord%' OR text LIKE '%trefwoord%'

Maar op deze manier wel:
SELECT * FROM groepen WHERE groep='1' AND soort='1' AND title LIKE '%trefwoord%' OR groep='1' AND soort='1' text LIKE '%trefwoord%'

het moet dus zijn a,b & c OR a,b & c

(ik weet 't: lekker onduidelijk verhaal, maar het is al laat/vroeg (net wat je wil) anyway: het werkt zoals ik 't wil....)



Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

Tip: Gebruik haakjes bij OR en AND.

... AND (... OR ...)
is heel iets anders dan
(... AND ...) OR ...
Met haakjes werkt ook prima:


SELECT 
  *
FROM 
  groepen 
WHERE 
  groep='1' 
AND 
  soort='1' 
AND 
  (
    title LIKE '%trefwoord%' 
  OR 
    text LIKE '%trefwoord%' 
  )


Zo zou het ook moeten kunnen.

Andere tip:
Schrijf uit welke kolommen je nodig hebt in plaats van het *. Dat werkt een stuk sneller.
Bedankt voor jullie reacties! De door jullie gegeven tips zal ik zeker gebruiken!

Reageren