mysql - 为什么 UPDATE x SET y ='c' AND TRUE 导致 y ='0'

标签 mysql sql-update sql-injection

我正在玩一个 SQL 挑战,并注意到给定一个表 x 和一个 TEXTy 以下查询:

UPDATE x SET y='c' AND TRUE

结果为 y='0'

还有:

UPDATE x SET y='c' OR TRUE

结果为 y='1'

出于好奇,我试图了解背后发生的事情以产生这些结果。

最佳答案

表达式 y='c' AND TRUEy='c' OR TRUEBoolean expressions .当表达式为真时,它们的计算结果为 1,当表达式为假时,它们的计算结果为 0

您的更新 计算这些表达式,并将它们的结果存储回字段y

关于mysql - 为什么 UPDATE x SET y ='c' AND TRUE 导致 y ='0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31654231/

相关文章:

sql - Postgresql SELECT 和 UPDATE 行为不同

sql - 从另一个表更新一个表

sql - Windows 应用程序是否容易受到 SQL 注入(inject)攻击

perl - 防止 SQL 表名注入(inject) - 多远?

java - 验证jsp页面上的登录表单

mysql - 每个订单的价格显示为订单价格

php - 使用 jQuery 和 PHP 动态添加输入字段并提交到数据库

iphone - 试图在 iPhone 应用程序更新中覆盖 sqlite 数据库

mysql - 根据事件和响应代码计算邀请响应

java - prepareStatement for variable table name 的问题