在不取消当前 SQL 语句的情况下创建新的 SQL 语句

Posted

技术标签:

【中文标题】在不取消当前 SQL 语句的情况下创建新的 SQL 语句【英文标题】:Making new SQL Statment without canceling current one 【发布时间】:2016-11-05 15:40:06 【问题描述】:

有没有办法在编写SQL语句时完全改变它:

假设我有这个:

SELECT * from `table1` WHERE `column1` LIKE '%%'

但现在我决定我实际上想要SELECT 一些完全不同的东西,比如table2,例如,我可以继续写吗(即不删除我到目前为止写的内容并且不做一个全新的声明(由分号)) 仍然得到table2 的内容? (我通常会通过写SELECT * from table2 得到)?

我问是因为我对 SQL 注入很着迷,想知道你能用它走多远。

【问题讨论】:

查询目前是如何构建的? @Tim 如果他在table1 附近点击鼠标会怎样...接近 1 部分 假设您可以输入插入在两个% 符号之间的搜索查询。 @Drew 我更多地考虑将table1 替换为table1 INNER JOIN table2 ON t1.id = t2.id,但他的代码可能 可以防止这种情况发生,假设他使用的是正确的工具。 这不是一个关于sql注入的问题,一个新鲜的问题,当这里的卷已经写了关于注入的楔入时,可以吗? 【参考方案1】:

不,您不能向后更改查询。 sql注入就是从实际注入的地方开始修改查询。

【讨论】:

以上是关于在不取消当前 SQL 语句的情况下创建新的 SQL 语句的主要内容,如果未能解决你的问题,请参考以下文章

在不提交的情况下测试 (JUnit) SQL DELETE 和 UPDATE 语句

在不访问 SQL Server Profiler 的情况下分析 ADO.NET 语句

如何在不更改现有数据位置的情况下添加新的 SQL Server 分区范围来容纳未来的数据?

我可以在不使用管道的情况下从 Azure Synapse 查询 SQL Server 数据库吗?

如何将地理批量插入新的 sql server 2008 表

如何在不包括最后一个值(sql)的情况下计算值的平均值?