1 Star 2 Fork 0

Eden/Notes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
MySQL UPDATE更新语法问题.md 914 Bytes
一键复制 编辑 原始数据 按行查看 历史
Eden 提交于 2024-01-22 21:38 . feat: MySQL UPDATE更新语法问题

MySQL UPDATE更新语法问题

问题

提了SQL工单,执行后成功后,发现数据没有变更。

UPDATE t_user 
SET status = '20' AND address_id = 'YYY' 
WHERE user_id IN ('111', '222', '333')

原因

UPDATE 语法问题,将 "," 错写成 AND,执行不会报错,只是不会修改数据。

正确的UPDATE语法如下 :

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

疑问

SQL明明不符合SQL格式,为什么数据库没有报异常?答案:MySQL认为这是一句正常的SQL!

MySQL是这么理解这个SQL的 :

UPDATE t_user 
SET status = ('20' AND address_id = 'YYY')
WHERE user_id IN ('111', '222', '333')
-- 执行
select status = ('20' AND address_id = 'YYY'); 
-- 输出
0

所以不仅没有执行异常,还更新成功的将 status 更新为 0。惊不惊喜~意不意外~

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/eden2f/notes.git
git@gitee.com:eden2f/notes.git
eden2f
notes
Notes
master

搜索帮助

Cb406eda 1850385 E526c682 1850385