我正在尝试从我的数据库中获取一些产品,其中有1号和2号
"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");
正如你所看到的,我选择了category_sex两次,但只返回第一个的值,(alle with 1)
我如何让两者兼得? ;)
感谢您的帮助
答案 0 :(得分:1)
我认为你需要这个:
"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'
没有意义,因为这意味着同一行的此列的值应该同时为“1”和“2”。这是不可能的。
也不要使用这样的表达式:stock_quantity > '0'
。这是数学比较,因此您可以直接使用数值:stock_quantity > 0
答案 1 :(得分: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");
试试这个