SQL中的动态选择变量

时间:2012-01-29 19:58:46

标签: sql variables select dynamic

是否可以在单个SQL语句中选择可变数量的元素?例如。根据具有值的参数数量,在语句中选择这些参数。如果声明是:

"Select x, y, z from table A where abc='123';" 

和x,y和z是从前一页传递的值。因此,如果只有x和z具有值,那么该语句应该像:

"Select x, z from table A where abc='123';"

如果只有x有值,则应选择:

"Select x from table A where abc='123';" 

这可能吗?

3 个答案:

答案 0 :(得分:0)

如果您是从网页构建它,那么只需使用您的代码修改select语句即可传递给SQL服务器。

如果你在SQL(存储过程或其他东西)中执行此操作并传入要选择的列,那么是的,您可以将select语句动态地构建为变量。然后执行变量。这是可能的,但不推荐。

var statement =“select”+ @columns +“from table where abc ='123'” exec @statement

显然,如果您在网页上使用此功能以避免SQL注入,请务必小心。

答案 1 :(得分:0)

正确的方法是根据用户的请求连接SQL语句,或隐藏代码中的列。尝试在SQL语句中执行它不是正确的方法。

答案 2 :(得分:0)

如果您正在动态构建一个sql字符串,只需在PHP中添加一些条件逻辑,以查看传入了什么参数并使用适当的SQL。