如何在列中插入选择查询。此 sql 查询需要来自屏幕的用户输入。
例如:
我有一个有 2 列的表:Query_ID_fruit
,SQL_QUERY_COL_FRUIT
select fruitA from fruits where fruitAttribute = '&fruitAttribute';
如何将上面的 sql 查询插入SQL_QUERY_COL_FRUIT
?
将 SQL 查询插入表时要非常非常小心。如果它们是使用用户输入构建的,则很容易出现 SQL 注入漏洞。尝试使用参数化查询或至少在将 SQL 查询插入表之前转义任何用户输入。
为了转义单引号,您实际上使用了两个背靠背,因此字符串中的 '' 变成了 '.
对于您的查询,您可以使用:
'select fruitA from fruits where fruitAttribute = ''&fruitAttribute'';'
这应该工作。只是要小心是什么&fruitAttribute
。
像这样?
INSERT INTO fruits_querys (SQL_QUERY_COL_FRUIT)
VALUES ("select fruitA from fruits where fruitAttribute = '&fruitAttribute';");
您可以将任何 select
子句的结果插入到表中。如果您select
返回目标表的相同数量的列(并且以相同的顺序),您可以使用:
insert into your_destination_table
select ...
如果您需要插入到您的目标表中,但您不会填充所有列,或者选择具有不同顺序的列:
insert into your_destination_table (field1, field2, ...)
select ...
当然,您需要满足目标表具有的任何条件(例如:PK 字段上没有空值,您选择的数据类型必须与目标表的列的数据类型匹配等)。