Mysql 为什么即使我有满足条件的数据,在oracle live中仍会出现“未找到数据”错误?

Mysql 为什么即使我有满足条件的数据,在oracle live中仍会出现“未找到数据”错误?,mysql,sql,Mysql,Sql,发生这种情况的原因是,您没有任何粉红色和红色的条目。使用或代替 不能使用颜色=‘粉色’和颜色=‘红色’,请改用或 从颜色为“粉色”或颜色为“红色”且售价

发生这种情况的原因是,您没有任何粉红色和红色的条目。使用或代替


不能使用颜色=‘粉色’和颜色=‘红色’,请改用或

从颜色为“粉色”或颜色为“红色”且售价<2000的产品中选择PNO、PNAME

你也可以像这样用IN子句


从颜色为“粉色”、“红色”且售价<2000的产品中选择PNO、PNAME

请添加产品的创建表。没有一行同时满足“颜色=”粉色“和“颜色=”红色”的条件。WHERE子句中的条件将针对每一行进行计算。我们知道,如果color='pink'的计算结果为TRUE,那么color='red'的计算结果为FALSE,我们知道TRUE和FALSE的计算结果为FALSE。这就是没有返回行的原因。将AND转换为OR时,我们需要注意AND的优先级高于OR,这意味着我们需要添加一些参数,或重复销售价格的条件。我希望两者都为true,并且它们的销售价格应小于2000。您的插入查询错误,必须只有一个值。我明白你的意思,价值观,而不是价值观。确定和/或的优先顺序。此答案中显示的语法有可能返回带有color='pink'的行以及任何销售价格值。我们可以使用parens来覆盖优先顺序,或者重复销售价格上的条件,或者我们可以使用“粉色”和“红色”,这是有效的,但由于或条件,我得到了不符合我条件的衬衫的额外细节。不过,您的数据中有一件粉色衬衫。您是否只需要在WHERE中添加另一个过滤器?它正在工作感谢您的帮助这将解决另一个问题
INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1001,'BOOK','PINK',1500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1002,'TABLE','BLUE',3500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1003,'COVER','BLACK',1800);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1004,'PANT','WHITE',2500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1005,'RIBBON','RED',1500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1006,'RING','BLUE',3000);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1007,'CUP','RED',2500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1008,'SHIRT','PINK',3000);

//query
SELECT PNO, PNAME
FROM PRODUCTS
WHERE (COLOR = 'PINK') AND (COLOR = 'RED')
AND  SALE_PRICE < 2000;
//query
SELECT PNO, PNAME
FROM PRODUCTS
WHERE (COLOR = 'PINK') OR (COLOR = 'RED')
AND  SALE_PRICE < 2000;
INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES
(1001,'BOOK','PINK',1500),
(1002,'TABLE','BLUE',3500),
(1003,'COVER','BLACK',1800),
(1004,'PANT','WHITE',2500),
(1005,'RIBBON','RED',1500),
(1006,'RING','BLUE',3000),
(1007,'CUP','RED',2500),
(1008,'SHIRT','PINK',3000);