有条件地在where中添加条件
Adding condition in where conditionally
我似乎找不到合适的解决方案。这是我想要的场景
如果参数为 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
}
在MySQL中,IF
是一个函数(就像C中的三元运算符和PHP)。在你不需要做任何事情的情况下,你可以returnTRUE
SELECT *
FROM Table
WHERE name = @name
AND IF(@id = 0, TRUE, id = @id)
另一种方法是 OR
:
WHERE name = @name AND (@id = 0 OR id = @id)
我似乎找不到合适的解决方案。这是我想要的场景 如果参数为 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
}
在MySQL中,IF
是一个函数(就像C中的三元运算符和PHP)。在你不需要做任何事情的情况下,你可以returnTRUE
SELECT *
FROM Table
WHERE name = @name
AND IF(@id = 0, TRUE, id = @id)
另一种方法是 OR
:
WHERE name = @name AND (@id = 0 OR id = @id)