如果设置了变量,则添加where子句参数

时间:2012-05-14 16:35:45

标签: mysql

我的SQL查询中有一个WHERE子句,并且想要根据@Fran变量是否设置来添加参数。

如果@Fran为NULL,则它根本不应过滤结果。否则,如果设置了@Fran,那么它应该添加一个WHERE子句“AND franid = @Fran”。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

SELECT ...
FROM ...
WHERE ...
AND ((@Fran IS NULL) OR (@Fran IS NOT NULL AND franid=@Fran));

答案 1 :(得分:0)

AND IFNULL(@Fran, franid) = franid
如果@Fran为NULL(然后它基本上是franid = franid),则

结果为TRUE;如果@Fran = franid不为NULL,则结果为{{1}}。