Mysql限制性

时间:2014-09-24 15:52:04

标签: php mysql sql

我在PHP中有2个变量(让我们称之为' var1'和' var2')和一个像这样的sql命令:

$sql = "SELECT `id`, `name` FROM `table` WHERE `var` = '{$var1}'"
if ($var2) {
  $sql.= "AND `var`={$var2}"; }

变量var1始终设置,但var2不设置。我想将var 2设置为仅对var2应用WHERE子句。这意味着var2比var1更具限制性。我怎么能用SQL语言做到这一点。

2 个答案:

答案 0 :(得分:2)

如果我理解你,你想要这样做 -

$sql = "SELECT `id`, `name` FROM `table` ";
if($var2) {
    $sql .= "WHERE `var` = '{$var2}'";
} else {
    $sql .= "WHERE `var` = '{$var1}'";
}

如果您只想使用SQL来执行此操作,您可以使用类似的内容 -

SELECT `id`, `name`, `variable`
    CASE variable
        WHEN 'var1' = variable THEN a = var1
        WHEN 'var2' = variable THEN a = var2
    END
FROM `table`
WHERE `foo` = a

如果不了解更多代码或使用示例数据,很难开发演示,但这应该可以帮助您入门。

答案 1 :(得分:1)

if ($var2) {
    $sql = "SELECT `id`, `name` FROM `table` WHERE `var` = '{$var2}'";

} else {
    $sql = "SELECT `id`, `name` FROM `table` WHERE `var` = '{$var1}'";
}