mysql select elseif_MySQL select语句是CASE还是IF ELSEIF?不确定如何获得结果

我有两个桌子。一个拥有制造商信息,并包括他们可以销售的区域。另一个有他们的产品出售。我们必须根据地区来限制产品的可见性。这就像Netflix的系统中的视频只能在任何地方(1),在加拿大(2),在美国(3)都可以观看。

我正在尝试进行查询,以告诉我可以根据制造商表中的设置在哪里查看产品。

例如,在制造商表中,有两个字段称为Exposure_new和Exposure_used,每个字段的值分别为1,2或3,以限制可以看到其新视频或使用过的视频的位置。

添加视频时,不会为它们分配“曝光”值,这是根据当前制造商的Exposure_new或Exposure_used值在将它们添加到我们的索引中时即时进行的。

我要获取的是项目详细信息以及基于其是新的还是二手的以及可以在何处看到的计算值,以及为其所有新的或二手产品分配给制造商的规则/值。

我需要根据每个产品使用此一位数字来有条件地将其显示在列表中。

以下内容不起作用,但是您将了解我正在尝试做的事情。我已经使用CASE语句和以下WRONG IF / ELSEIF语句进行了尝试。

任何调试器的帮助,并指出正确的方向,将不胜感激。

SELECT

t2.company_name,

t2.expose_new, // 1,2 or 3

t2.expose_used, // 1,2 or 3

t1.title,

t1.seller,

t1.status, //can be new or used

(SELECT

IF(status ='New',

(select expose_new from manufacturers where id = t1.seller),1

)

ELSEIF(t1.status ='Used',

(select expose_used from manufacturers where id = t1.seller),1

)

END IF

) as 'expose'

FROM `products` t1

join manufacturers t2 on t2.id = t1.seller

where t1.seller = 4238

这是一个CASE版本,实际上似乎在执行,但无论什么情况发生(在本例中为1),总是会产生第一个值。我不确定我是否可以在每个WHEN语句中使用AND添加另一个测试,但是它不会给出错误,而只会给出错误的结果。

SELECT

t2.company_name,

t2.expose_new,

t2.expose_used,

t1.title,

t1.status,

CASE status

when 'New' and t2.expose_new = 1 then 1

when 'New' and t2.expose_new = 2 then 2

when 'New' and t2.expose_new = 3 then 3

when 'Used' and t2.expose_used = 1 then 1

when 'Used' and t2.expose_used = 2 then 2

when 'Used' and t2.expose_used = 3 then 3

END as expose

FROM `products` t1

join manufacturers t2 on t2.id = t1.seller

where t1.seller = 4238

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值