mysql
2016-04-13 7 views 0 likes 
0

Ich habe eine MySQL-Abfrage alsmit oder zwischen verschiedenen Spalten zusammen mit UND

$query = "SELECT id,link, shape, size, color, clarity, cut, price, markup, cert, certificateNumber, stockNumber FROM diamonds WHERE cert IN ('GIA,AGS') AND storeKey = '$storeKey' AND size BETWEEN $minCarat AND $maxCarat AND price BETWEEN $minPrice AND $maxPrice AND cut IN($cut) AND clarity IN ($clarity) AND color IN ($color) AND shape IN ($shape) ORDER BY price ASC"; 

Es ist ersichtlich, dass es nur jene Liste der Diamanten ermöglicht, die cert Either GIA Or AGS

Ich möchte hinzufügen, eine andere Bedingung haben. Die Tabelle hat eine Spalte "link" Sie kann entweder leer oder nicht leer sein. Wenn ich entweder GIA oder AGS verwende, werden viele der Diamanten ausgeschlossen, deren Verbindung nicht leer ist. Ich möchte auch Bedingung für Link hinzufügen. So etwas wie

cert IN ('GIA,AGS') Or link != '' 

Wie kann ich hinzufügen oder zusätzlich und mit anderen Werten

Antwort

0
$query = "SELECT 
      id,link,shape,size, 
      color, clarity, cut, price, 
      markup, cert, certificateNumber,stockNumber 
     FROM 
      diamonds 
     WHERE 
       (cert IN ('GIA,AGS') or link != '') 
      AND storeKey = '$storeKey' 
      AND size BETWEEN $minCarat AND $maxCarat 
      AND price BETWEEN $minPrice AND $maxPrice 
      AND cut IN($cut) 
      AND clarity IN ($clarity) 
      AND color IN ($color) 
      AND shape IN ($shape) 
     ORDER BY price"; 

sehen keine Probleme nur OR Anweisung hinzufügen

+0

so nur die eckigen Klammern? –

+0

ja, genau. Sie sollten die Klammer verwenden, um die Priorität festzulegen –

Verwandte Themen