是否可以在单个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';"
这可能吗?
答案 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。