我在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语言做到这一点。
答案 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}'";
}