gpt4 book ai didi

mysql选择多个 "in"

转载 作者:行者123 更新时间:2023-11-29 14:01:10 24 4
gpt4 key购买 nike

我需要一些关于 select 语句的帮助。

table: mobiles (brand,model,price)

我尝试了以下语法来获取内容。

select * 
from mobiles
where brand in ('apple','nokia','samsung')
and model in ('lumia 510','galaxy s3')

以上查询仅显示“nokia lumia 510”和“samsung Galaxy s3”。

我希望它显示“apple”中的所有型号,仅显示“nokia”中的“lumia 510”和“samsung”中的“galaxy s3”。

我使用语法错误吗?

我正在开发一个网站,用户可以按品牌和型号过滤手机。我需要仅显示用户选择的手机。对于每个品牌,如果用户选择特定型号,则仅显示该型号,如果仅选择品牌,则应显示该品牌下的所有手机。

他可以选择任意数量的品牌,并且在每个品牌下他可能会也可能不会选择特定型号。

最佳答案

IN 无法做到这一点,因为每个品牌都有不同的型号要求。

SELECT *
FROM mobiles
WHERE (brand = 'apple')
OR (brand = 'nokia' AND model = 'nokia lumia 510')
OR (brand = 'samsung' AND model = 'galaxy s3')

如果模型对于特定品牌始终是唯一的,您可以稍微简化一下:

SELECT *
FROM mobiles
WHERE brand IN ('apple')
OR model IN ('nokia lumia 510', 'galaxy s3')

将所有未选择型号的品牌放入第一个 IN 子句中,将所有型号放入第二个子句中。由于独特的关系,品牌是由模型暗示的。

关于mysql选择多个 "in",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15034855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com