Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL中的动态选择变量_Sql_Variables_Select_Dynamic - Fatal编程技术网

SQL中的动态选择变量

SQL中的动态选择变量,sql,variables,select,dynamic,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';"

是否可以在一条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';" 

是否可以这样做?

如果您是从网页构建它,则只需使用代码修改select语句即可传递到SQL server

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

var语句=从表中选择+@columns+,其中abc='123' exec@语句


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

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

如果要动态构建SQL字符串,只需在PHP中放入一些条件逻辑,查看传入了哪些参数,并使用适当的SQL即可

x、y和z是从上一页传递过来的值-你在说什么?上一页是什么?我的意思是我正在使用PHP,我想让用户选择他们想要查看的字段,因此我希望语句根据用户选择的内容显示结果。我会将这些作为参数传递到数据库函数中,以相应地检索结果。您是在尝试使用纯SQL还是应用程序服务器或存储过程来执行此操作?从何处调用SQL语句?如果您正在以php为例构建sql语句,那么当然可以编写一些逻辑代码,根据variables.sql和php的值选择性地创建语句。。因此,我将传入PHP变量。我只想知道如何使select语句动态。可以吗?我正在使用PHP和mysqli进行数据库连接。。列名是数组还是什么的?如果使用php,只需使用php动态创建语句即可。请看这里: