mysql - SQL 更新语句不适用于 281 条记录
问题描述
我在 Jetbrains 的 DataGrip 中运行这些查询
因此,第一个查询用于重置 snapchat 的进程,其中 snap_username = '0'。我运行它,它说有 281 条记录影响,很好用吗?不。
UPDATE cache_items SET snap_username = NULL AND snap_processed_at = NULL AND snap_approved_at = NULL AND snap_result = 'waiting' WHERE LENGTH(snap_username) > 0
AND snap_username = '0';
在多次运行第一个查询之后,这个仍然返回原始的 281 条记录,每次它说 281 行受到影响。
SELECT item, description, snap_username FROM cache_items WHERE LENGTH(snap_username) > 0
AND snap_username = '0';
奇怪的是,我不确定它最初是如何变成 0 的——我猜这是我的播种机之一搞砸了。
snap_username 是 varchar 255 数据类型。
解决方案
我想你想要:
UPDATE cache_items
SET snap_username = NULL,
snap_processed_at = null,
snap_approved_at = null,
snap_result = 'waiting'
WHERE LENGTH(snap_username) > 0 AND snap_username = '0';
请注意,AND
s 将替换为,
s。
您的代码被解析为:
set snap_username = (NULL AND snap_processed_at = null AND snap_approved_at = null AND snap_result = 'waiting')
推荐阅读
- sql - Powershell dbatools - 使用 CMS 获取服务器名称
- python-3.x - 做 GRAD-CAM 时的“合并层”问题。如何在我的自定义功能模型中克服这个问题?
- excel - 将范围从 excel 和 pasteSpecial 复制到 word 时,我想在图片周围添加边框线
- python - 对数据框 pandas 中的选定数据进行分组
- android - 3 android中的editText & textWatcher问题
- c# - C#中无法识别来自Jsonstream的音素
- php - 无法在 Laravel 迁移中创建外键
- windows - 将 JAVA_HOME 等环境变量放在 .bashrc 或 .profile 或 .bash_login 中的最佳实践是什么?
- c# - 使用 BackgroundWorker 时如何将 e.Result 值返回给 VB6 调用者?
- python - Odoo 从控制台上传和读取文件/读取文件