mysql - 用于更新特定记录的 SQL 语句,但如果该记录在列中包含某个值,则忽略该记录
问题描述
正如标题所示,我需要更新星期几的时间,但忽略星期几等于星期六或星期日的记录。该查询似乎还更新了包括星期六和星期日的记录,这是我试图避免的。
UPDATE openingTimes SET timeOpening = '09:00:00', timeClosing = '18:00:00'
WHERE departmentId=79
OR departmentId=3
OR departmentId=6
OR departmentId=10
OR departmentId=15
OR departmentId=18
OR departmentId=25
OR departmentId=29
OR departmentId=32
OR departmentId=36
OR departmentId=40
OR departmentId=44
OR departmentId=49
OR departmentId=54
OR departmentId=57
OR departmentId=61
OR departmentId=67
OR departmentId=72
OR departmentId=79
OR departmentId=83
OR departmentId=84
OR departmentId=89
OR departmentId=95
OR departmentId=99
OR departmentId=113
OR departmentId=118
OR departmentId=120
OR departmentId=124
OR departmentId=131
OR departmentId=136
OR departmentId=137
OR departmentId=142
OR departmentId=145
OR departmentId=149
OR departmentId=157
OR departmentId=162
AND NOT (dayOfTheWeek='Saturday' OR dayOfTheWeek='Sunday');
解决方案
请使用下面的查询,这是正确的方法,而不是使用多个 or 条件。
UPDATE openingTimes SET timeOpening = '09:00:00', timeClosing = '18:00:00'
WHERE departmentId in
(79,3,6,10,15,18,25,29,32,36,40,44,49,54,57,61,67,72,79,83,84,89,95,99,
113,118,120,124,131,136,137,142,145,149,157,162)
AND dayOfTheWeek NOT in ('Saturday', 'Sunday');
推荐阅读
- python - 克罗内克乘法仅适用于特定轴
- angular - 找不到 API 编译器 cli、函数 VERSION 错误:找不到 API 编译器 cli、函数 VERSION
- android - 致命异常:java.lang.UnsatisfiedLinkError centrifuge-android
- node.js - 如何将 XLSX 添加到服务器端 Node JS
- javascript - 在 Angular 中的 CSS 转换后渲染 JS
- java - 如何在 Spring-boot 应用程序中跟踪数据库是否无法访问
- mongodb - 将字符串的值设置为数组的第一个元素
- scala - 如何覆盖 intellij 中的 Spark 默认 log4j 配置文件?
- vba - 从 CSV -> excel 单元格移动数据的效率问题
- ionic4 - 打开键盘时隐藏页脚