是否有一个返回all的mysql变量?

时间:2016-06-22 20:17:13

标签: mysql sql

我根据变量使用MySQL子句进行WHERE查询。我想弄清楚是否有办法将变量设置为一个通配符,它​​会在该字段中返回任何值?

WHERE c.call_state_id = $state
AND  (follow_emp_id = $user_id OR follow_emp_id = 117)
ORDER BY $sort 

我希望实际上消除查询的$user_id部分,而不是将结果限制为1个特定AND

2 个答案:

答案 0 :(得分:1)

我会动态构建查询,并在将其放入WHERE子句之前检查该值。

if (empty($userid)) {
    $userid_check = ""
} else {
    $userid_check = "AND (follow_emp_id = $user_id OR follow_emp_id = 117)"
}
$sql = "SELECT ...
        WHERE c.call_state_id = $state
        $userid_check
        ORDER BY $sort";

有关动态构建查询的更一般方法,请参阅https://stackoverflow.com/a/28909923/1491895

答案 1 :(得分:0)

如果您知道不使用的值,例如0(或-1);你可以检查一下:

WHERE c.call_state_id = $state
AND  ($user_id = 0 OR follow_emp_id = $user_id OR follow_emp_id = 117)
ORDER BY $sort