-1

如何在列中插入选择查询。此 sql 查询需要来自屏幕的用户输入。

例如:

我有一个有 2 列的表:Query_ID_fruit,SQL_QUERY_COL_FRUIT

select fruitA from fruits where fruitAttribute = '&fruitAttribute';

如何将上面的 sql 查询插入SQL_QUERY_COL_FRUIT

4

3 回答 3

0

将 SQL 查询插入表时要非常非常小心。如果它们是使用用户输入构建的,则很容易出现 SQL 注入漏洞。尝试使用参数化查询或至少在将 SQL 查询插入表之前转义任何用户输入。

为了转义单引号,您实际上使用了两个背靠背,因此字符串中的 '' 变成了 '.

对于您的查询,您可以使用:

'select fruitA from fruits where fruitAttribute = ''&fruitAttribute'';'

这应该工作。只是要小心是什么&fruitAttribute

于 2013-10-01T16:45:35.973 回答
0

像这样?

INSERT INTO fruits_querys (SQL_QUERY_COL_FRUIT)
VALUES ("select fruitA from fruits where fruitAttribute = '&fruitAttribute';");
于 2013-10-01T16:25:27.393 回答
0

您可以将任何 select子句的结果插入到表中。如果您select返回目标表的相同数量的列(并且以相同的顺序),您可以使用:

insert into your_destination_table
select ...

如果您需要插入到您的目标表中,但您不会填充所有列,或者选择具有不同顺序的列:

insert into your_destination_table (field1, field2, ...)
select ...

当然,您需要满足目标表具有的任何条件(例如:PK 字段上没有空值,您选择的数据类型必须与目标表的列的数据类型匹配等)。

于 2013-10-01T16:26:14.473 回答