【问题标题】:Adding condition in where conditionally有条件地在 where 中添加条件
【发布时间】:2017-03-25 05:11:49
【问题描述】:

我似乎找不到合适的解决方案。这是我想要的场景 如果参数为 0,则添加一个条件。看起来像

SELECT * FROM TABLE WHERE  name = @name AND 
//this is the part I dont know but I want something like
IF(@id = 0)
{
//do nothing
}else{
id = @id
}

【问题讨论】:

  • 您可能想要CASE,但信息太少很难猜到请阅读How-to-Ask 这里是START 了解如何提高问题质量并获得更好答案的好地方.

标签: mysql if-statement conditional where


【解决方案1】:

在 MySQL 中,IF 是一个函数(类似于 C 和 PHP 中的三元运算符)。在你不需要做任何事情的情况下,你可以从中返回TRUE。

SELECT *
FROM Table
WHERE name = @name
AND IF(@id = 0, TRUE, id = @id)

另一种方法是使用OR:

WHERE name = @name AND (@id = 0 OR id = @id)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多