MySQL中根据条件忽略WHERE语句

tha*_*sdr -2 mysql sql where-clause

假设我有一个包含一些列的表,其中一列名为col。如果可能的话,我想在语句中应用以下过滤器SELECT

  • if col = ""THEN 返回整个表
  • 否则仅返回其中的行col = the given value

例子:

col output

10     9
 9     8
 0    10
Run Code Online (Sandbox Code Playgroud)

如果我想根据列过滤结果,col那么我可以做一个简单的操作:

SELECT * FROM table
WHERE col = 10
Run Code Online (Sandbox Code Playgroud)

我只会得到 col=10 的行。

但如果条件是,我想获得完整的表格col = "

编辑:不幸的是,我无法使用SET关键字来设置变量。

Sal*_*n A 5

假设“给定值”包含在用户变量或参数内:

WHERE @var = '' OR col = @var
WHERE :var = '' OR col = :var
WHERE ? = '' OR col = ?
Run Code Online (Sandbox Code Playgroud)

如果您以某种方式“构建”查询,您可以简单地根据输入跳过 where 子句。