2017-04-01 5 views
0

Ich versuche, einige Produkte aus meiner Datenbank zu bekommen, wo hat die Nummer 1 und 2MYSQL - Auswahl 2-Werte in derselben Colum

"SELECT * FROM dagenshug_product WHERE stock_quantity > '0' AND product_in_sale = '1' AND category_sex = '1' AND category_sex = '2' AND category_id = '".$req_category_id."' ORDER BY id DESC"); 

Wie Sie Ich wähle category_sex zweimal sehen, aber nur ths Rückkehr die Werte von der ersten, (alle mit 1)

Wie mache ich es beides? ;)

Danke für Ihre Hilfe

+0

Sie hier für mehr Infomationen http://stackoverflow.com/questions/12594343/how-do-i- select-multiple-values-in-der-selbe-Spalte – Akashii

+0

Ich denke, anstatt "AND" zu verwenden, sollten Sie "OR" in der Kategorie – LiverpoolOwen

+0

verwenden. Ihre Logik ist fehlerhaft. Du suchst nach Zeilen, in denen Sex ** ** ** ** oder ** 2 ist. Weil eine Zeile nicht ** ** ** und ** 2 gleichzeitig haben kann. so 'UND (category_sex = '1' ODER category_sex = '2')'. Oder noch besser, 'category_sex IN ('1', '2')'. – hlfrmn

Antwort

1

Ich glaube, Sie dies benötigen:

"SELECT * FROM dagenshug_product 
WHERE 
stock_quantity > 0 AND product_in_sale = '1' AND category_sex IN('1', '2') AND category_id = '".$req_category_id."' ORDER BY id DESC"); 

category_sex = '1' AND category_sex = '2' Sinn macht nicht funktioniert, weil es das Wert für diese Spalte bedeutet, für gleiche Zeile, sollte ‚1 'und' 2 'gleichzeitig. das ist unmöglich.

Verwenden Sie auch keine Ausdrücke wie diese: stock_quantity > '0'. Dies ist Mathe Vergleich, so können Sie direkt numerische Werte verwenden: stock_quantity > 0

1
"SELECT * FROM dagenshug_product WHERE stock_quantity > '0' AND product_in_sale = '1' AND (category_sex = '1' OR category_sex = '2') AND category_id = '".$req_category_id."' ORDER BY id DESC"); 

Versuchen Sie, diese

Verwandte Themen