如何在表中插入sql查询(带有用户输入的select语句)

时间:2013-10-01 16:14:08

标签: sql insert

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

例如:

我有一个包含2列的表格:Query_ID_fruitSQL_QUERY_COL_FRUIT

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

如何在SQL_QUERY_COL_FRUIT

中插入上面的sql查询

3 个答案:

答案 0 :(得分:0)

喜欢这个吗?

INSERT INTO fruits_querys (SQL_QUERY_COL_FRUIT)
VALUES ("select fruitA from fruits where fruitAttribute = '&fruitAttribute';");

答案 1 :(得分:0)

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

insert into your_destination_table
select ...

如果您需要插入目标表但不打算填充所有列,或者select具有不同顺序的列:

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

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

答案 2 :(得分:0)

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

为了逃避单引号,你实际上使用了两个背对背,所以''在一个字符串内变成'。

您的查询可以使用:

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

哪个应该有效。请注意&fruitAttribute是什么。