You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL多IF条件使用问题:三角形类型判断查询异常求助

解决MySQL判断三角形类型的问题

原代码的问题分析

  1. 判断顺序错误:未优先判断是否能构成三角形,导致逻辑优先级混乱
  2. 条件写法错误:
    • A = B = C 不是MySQL中正确的三边相等判断,需写成 A = B AND B = C
    • A = B != C 这类表达式逻辑不严谨,应改为 A = B AND B != C
  3. 结果拼接方式错误:用OR连接多个IF语句会触发逻辑运算(字符串与NULL的逻辑或结果为NULL),无法得到预期的分类结果

正确实现方案

使用CASE WHEN语句按优先级依次匹配条件,确保每行返回唯一正确结果:

SELECT
    CASE
        -- 先判断是否能构成三角形:任意两边之和大于第三边
        WHEN A + B <= C OR A + C <= B OR B + C <= A THEN 'Not A Triangle'
        -- 等边三角形:三边全相等
        WHEN A = B AND B = C THEN 'Equilateral'
        -- 等腰三角形:任意两边相等
        WHEN A = B OR B = C OR A = C THEN 'Isosceles'
        -- 剩余情况为不等边三角形
        ELSE 'Scalene'
    END AS triangle_type
FROM TRIANGLES;

测试验证

针对示例数据(20,20,23)和(20,20,20),执行上述SQL会得到:

triangle_type
-------------
Isosceles
Equilateral

内容的提问来源于stack exchange,提问作者Morteza Tajeri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 09:09:55