提问人:kawarizma 提问时间:2/24/2023 最后编辑:kawarizma 更新时间:2/24/2023 访问量:60
在 Postgresql 上执行 SQL 查询时出现“值超出范围:溢出”错误
"Value out of range: overflow" error when executing SQL query on Postgresql
问:
我在为内部 CTF 实验室执行 SQL 查询时遇到问题,该查询给我“值超出范围:溢出”错误。 查询是这样的:
update users set active = true where id = INJECTION
我的目标是触发和错误条件,所以我使用了这个:
update users
set active = true
where id = (select (case when (select 0)=1 then (select pow(999,9999)) else 10 end));
--->错误:值超出范围:溢出
而
update users
set active = true
where id = (select (case when 0=1 then (select pow(999,9999)) else 10 end));
-->没有错误
为什么会这样?0=1 为 false,为什么执行带有 pow 函数的子查询?
答: 暂无答案
评论
id = case when false then pow(...) else 10 end