免责声明:我知道可以将 AND 和 OR 运算符添加到单个 WHERE 语句中,这通常是正确的方法......
但是,我正在根据各种外部因素动态构建一个复杂的查询。出于可读性和可维护性的目的,如果我可以为始终需要满足的某些条件设置一个 WHERE 语句,然后再添加另一个(第二个)语句,这将根据情况而改变。
A. 这是有效的 MySQL 吗?B. 出于某种特殊原因,这是一个糟糕的想法吗?
这是一个简化的示例:
<?php
$query = "
SELECT a,b,c
FROM table1
LEFT JOIN table2 on foo=bar
LEFT JOIN table3 on foo2=bar2
...
WHERE foobar = something_that_is_consistent
AND boobar = something_else_consistent
...
";
if ( $something_special ) {
$query .= "WHERE ..."
}
if ( $something_else_special ) {
$query .= "WHERE ..."
}
这是一个微不足道的例子,但希望它能说明我在想什么,以及我是如何尝试避免查询字符串中出现大块的嵌套条件的。