MySQL-IF/THEN语句查询

MySQL-IF/THEN语句查询,mysql,Mysql,来自塞舌尔群岛的问候,各位:-) 我正在做一个MySQL数据库项目,遇到了一堵砖墙,不知道是否有人能帮我 基本上,我在数据库中有一个表,它在字段中存储飞机的MTOW值:MTOW。我还有另一个字段,着陆费,用于根据之前输入的MTOW值计算飞机的着陆费 此着陆费有几个条件: 如果MTOW小于10000千克,着陆费应为(MTOW x 22.00) 如果MTOW介于10000千克和60000千克之间,则着陆费应为(MTOW x 27.00),依此类推 现在我的问题是如何选择飞机的记录并根据MTOW值自动

来自塞舌尔群岛的问候,各位:-)

我正在做一个MySQL数据库项目,遇到了一堵砖墙,不知道是否有人能帮我

基本上,我在数据库中有一个表,它在字段中存储飞机的MTOW值:MTOW。我还有另一个字段,着陆费,用于根据之前输入的MTOW值计算飞机的着陆费

此着陆费有几个条件:

如果MTOW小于10000千克,着陆费应为(MTOW x 22.00) 如果MTOW介于10000千克和60000千克之间,则着陆费应为(MTOW x 27.00),依此类推

现在我的问题是如何选择飞机的记录并根据MTOW值自动计算其着陆费用

这可能吗

请告知

谢谢你和亲切的问候

伊德里斯·贾米尔·阿菲夫先生

早上好,伊德里斯

我认为您应该查找并运行需要检查的
MTOW
的每个值的案例,然后 找到正确的值后,运行适当的计算

例如:

SELECT columns, more_columns, CASE 
    WHEN `MTOW` < 10000 THEN (`MTOW` * 22) 
    WHEN (`MTOW` > 9999 AND `MTOW` < 60000) THEN (`MTOW` * 27)
    ... 
    ELSE 'some default value' 
    END as landing_fee,
    further_columns
FROM table 
WHERE....
选择列、更多列、大小写
当“MTOW”<10000时,则('MTOW`*22)
当(`MTOW`>9999和`MTOW`<60000)然后(`MTOW`*27)
... 
其他“某些默认值”
以登陆费结束,
其他专栏
从桌子上
哪里

一个视图可以实现以下功能:

CREATE TABLE aircrafts (
  MTOW DOUBLE
);

CREATE VIEW aircrafts_with_fee as
  SELECT MTOW,
  IF (MTOW < 10000, MTOW*22,
      IF (MTOW < 60000, MTOW*27, 0)
  ) as LANDING_FEE
  FROM aircrafts;
创建表飞机(
MTOW双倍
);
创建视图飞机,费用为
选择MTOW,
如果(MTOW<10000,MTOW*22,
如果(MTOW<60000,MTOW*27,0)
)作为着陆费
从飞机上;

Nested IF条件不适合使用,并且容易出现编码错误。另外,变量名应该是小写的,在你的例子中,你似乎颠倒了大小写。非常感谢,user3253654:-)亲爱的Martin,谢谢你-我将尝试一下,然后返回结果。您能与我分享您的联系方式吗?@IdrisJamilAfif您最好在这个堆栈溢出线程上使用注释
:-)
不用担心:-)上述解决方案有效-再次感谢您