表行字段的Mysql if else语句

Posted

技术标签:

【中文标题】表行字段的Mysql if else语句【英文标题】:Mysql if else statement for table row field 【发布时间】:2018-01-13 20:22:41 【问题描述】:

我有一张这样的桌子

|标识 |启用 |分钟 |最大 | |------------------------------------| |1 |真实 | 4 | 10 | |2 |假 | 5 | 23 | |3 |真实 | 6 | 45 | |------------------------------------|

我想要什么?

    选择“min”和“max”在 2 到 30 之间的行。 上述条件仅适用于“启用”字段为 true 的行,不适用于 false

输出

鉴于上述输出的条件必须如下所示

|标识 |启用 |分钟 |最大 | |------------------------------------| |1 |真实 | 4 | 10 | |------------------------------------|

抱歉语法错误

【问题讨论】:

TINYINT 列中使用 1 或 0 可能比使用字符串类型的“布尔”值更好。然后 mysql 可以执行 WHERE enable 而不必执行笨重的 WHERE enable='true' 【参考方案1】:
SELECT ID, ENABLE, MIN, MAX
FROM
YOUR_TABLE
WHERE ENABLE = 'TRUE' AND MIN >= 2 AND MAX <= 30;

【讨论】:

感谢您的回答,但我希望这个条件“MIN >= 2 AND MAX = 2 AND MAX 通过将使用ANDENABLE = 'TRUE' 条件与MIN 和MAX 条件相结合,它们将仅适用于具有TRUE 值的记录。 看这里的案例。根据排序规则设置,TRUE 可能与 true 不同。

以上是关于表行字段的Mysql if else语句的主要内容,如果未能解决你的问题,请参考以下文章

mysql - ORDER BY 语句中的 IF...ELSE 或 CASE

MySQL CONCAT 多个字段与 IF 语句

PHP implode 爆炸逗号分隔值用于 if else 语句

IF ELSE inside Load data infile mysql

mysql 查询某个字段并拼接case when出来的字段

mybatis中, 表字段面积area范围查询 if语句怎么拼的