Mysql SQL中的子集数据:

Mysql SQL中的子集数据:,mysql,sql,Mysql,Sql,考虑一个名为records的表,其中包含列(name(TEXT)、price(INT)、color(TEXT)、vehicletype(TEXT)) “如果是一辆黑色轿车,我准备付10000英镑,但如果是红色或黑色的 白色,然后不超过8000。对于任何其他颜色,我不会超过8000 7000,除非是SUV,在这种情况下,我的预算高达15000 对于黑色或任何其他颜色,最高可达14000。” 用带有“and”和“or”的where子句回答了这个问题。正在寻找一种更有效的方法来解决此问题。您可能希望尝

考虑一个名为records的表,其中包含列(name(TEXT)、price(INT)、color(TEXT)、vehicletype(TEXT))

“如果是一辆黑色轿车,我准备付10000英镑,但如果是红色或黑色的 白色,然后不超过8000。对于任何其他颜色,我不会超过8000 7000,除非是SUV,在这种情况下,我的预算高达15000 对于黑色或任何其他颜色,最高可达14000。”


用带有“and”和“or”的where子句回答了这个问题。正在寻找一种更有效的方法来解决此问题。

您可能希望尝试
联合
联合所有
,例如

Select * from table where color = 'black' and price <= 10000
UNION
Select * from table where color in ('red', 'white') and price <= 8000
UNION
从表中选择*,其中颜色='black'和价格
如果是黑色轿车,我准备付10000,但如果是红色或黑色的
白色,然后不超过8000。对于任何其他颜色,我都不会超过
7000,除非是SUV,在这种情况下,我的预算高达15000
适用于黑色或任何其他颜色的高达14000

从表中选择名称、价格、颜色、车辆类型
其中(上部(车辆类型)=‘轿车’

和((上(颜色)=‘黑色’和价格你试图解决你的家庭作业是什么?我使用了where子句:where(颜色=“黑色”和价格)我投票结束这个问题,因为它是一个零努力的家庭作业转储。非常感谢你的回答,我也回答了同样的问题。希望更有效地编写相同的查询。
Select * from table where color = 'black' and price <= 10000
UNION
Select * from table where color in ('red', 'white') and price <= 8000
UNION
SELECT name, price, color, vehicletype FROM table
 WHERE (UPPER(vehicletype) = 'SEDAN'
   AND ((UPPER(color) = 'BLACK' AND price <= 10000)
    OR (UPPER(color) IN ('RED','WHITE') AND price <= 8000)
    OR (UPPER(color) NOT IN ('BLACK','RED','WHITE') AND price <= 7000)))
    OR (UPPER(vehicletype) = 'SUV'
   AND ((UPPER(color) = 'BLACK' AND price <= 15000)
    OR (UPPER(color) != 'BLACK' AND price <= 14000)))