Select 所有事实,即使存在 WHERE 子句
Select all facts even when WHERE clause is present
我知道这听起来很奇怪,我当然可以解决我的问题。我在服务器端代码上使用 SQL,语句类似于以下内容:
SELECT myCol FROM mytable WHERE myCol2=url_parameter
url_parameter
是通过URL传递的字符串。有什么方法可以将 url_parameter
设置为某些内容,但仍能获得 table 中的所有事实?
不应该有;如果有,那么服务器端的编写方式将允许 SQL 注入攻击,这可能是一个比您想要解决的问题更大的问题。
如果您能够修改服务器端代码,那么您可以通过 运行 没有 WHERE 条件的查询变体来让它响应某些参数值或参数值组合.或者还有其他选择...但是您已经说过可以解决它,所以我假设您已经想到了其中一个想法。
处理此问题的正常方法是使用如下所示的查询:
SELECT myCol
FROM mytable
WHERE myCol2 = url_parameter OR url_parameter IS NULL; -- or url_parameter = '';
如果您正在修改 SQL 字符串而不是传递参数,则可以在要获取所有值时插入值 myCol2
(不带引号)。但是,您应该使用参数。
我知道这听起来很奇怪,我当然可以解决我的问题。我在服务器端代码上使用 SQL,语句类似于以下内容:
SELECT myCol FROM mytable WHERE myCol2=url_parameter
url_parameter
是通过URL传递的字符串。有什么方法可以将 url_parameter
设置为某些内容,但仍能获得 table 中的所有事实?
不应该有;如果有,那么服务器端的编写方式将允许 SQL 注入攻击,这可能是一个比您想要解决的问题更大的问题。
如果您能够修改服务器端代码,那么您可以通过 运行 没有 WHERE 条件的查询变体来让它响应某些参数值或参数值组合.或者还有其他选择...但是您已经说过可以解决它,所以我假设您已经想到了其中一个想法。
处理此问题的正常方法是使用如下所示的查询:
SELECT myCol
FROM mytable
WHERE myCol2 = url_parameter OR url_parameter IS NULL; -- or url_parameter = '';
如果您正在修改 SQL 字符串而不是传递参数,则可以在要获取所有值时插入值 myCol2
(不带引号)。但是,您应该使用参数。