where 子句 mysql 中的 if 语句语法错误

if statement in where clause mysql syntax error

我正在尝试使用 MySQL 中的 if 条件。我收到语法错误。我尝试查看许多其他 Stack Overflow 讨论,但无法弄明白。谁能帮帮我?

这是我的代码:

if(isset($_POST['Submit'])) {
$branch = $_POST['branch'];
$query = "SELECT * FROM table
WHERE branch='$branch' and testcase like 
IF(isset(_$POST['testcase']),'$_POST['testcase']','1=1')";
....
}

我想在 branch='$branch'testcase 之间的 WHERE 中执行和操作,具体取决于是否在我的表单中选择了天气。如果选中,我想在branch和testcase的值之间做一个与运算。如果没有,我只想过滤掉 $branch 值的结果。

如果我理解正确的话,您想根据是否设置了 testcase 值进行动态查询?

如果是这样你可以试试这个:

if(isset($_POST['Submit'])) {
$branch = $_POST['branch'];
$testcase = "";

 if (isset($_POST['testcase'])) {
    $testcase = "and testcase like '" . $_POST['testcase'] . "'";
 }

 $query = "SELECT * FROM table
 WHERE branch='$branch' $testcase";

这样,如果设置了测试用例值,它将 $testcase 设置为查询的 and testcase like 部分。如果未设置,则它将是一个空字符串,这将使 $query 仅具有 $branch 值。

Isset 不是 mysql 命令,它是 php 命令。您需要先构建变量。

$bleach = false

IF(isset($_POST['testcase'])
{
$bleach = $_POST['testcase']
}
Else 
{
$bleach=1
}

然后将 $bleach 传递到您的查询中