mysql - 更新查询不止一件事
问题描述
更新具有最低值的 S_Loc、S_Code。
我不断收到错误错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 library.S_Code = s.S_Code 上使用 near 的正确语法
Update library
inner join (
Select S_Code
from Book
group by S_Code
having count(xy) = min(count(xy)) s
on Book.S_Code = s.S_Code
set S_Loc = 'CB-3322';
它使用重复最少的 s_code 更改值,以获得新的 s_loc。
解决方案
您不能嵌套聚合函数,例如MIN(COUNT(ISBN))
. 您需要另一个子查询来获得它。
Update library
inner join (
Select S_Code
from Library
group by S_Code
having count(*) = (SELECT COUNT(*) AS c FROM library GROUP BY S_Code ORDER BY c LIMIT 1)) s
on library.S_Code = s.S_Code
set S_Loc = 'CB-3322';
推荐阅读
- linux - git push 使用 crontab 每小时提示密码
- python - 设置环境变量python
- ubuntu - ubuntu trusty 14.04 达到 EOL 后安装 php5.6 的选项有哪些
- excel - 使用 yo office 运行 Excel 任务窗格项目后获取“office-addin-debugging 不被识别为内部或外部命令”
- typescript - Leaflet 中的 MarkerCluster 未定义?
- javascript - 有没有更好的方法将消息发送到特定服务器中的特定通道?
- redis - 使用带有 Redis 的 spring-session 时出现 @ConfigurationProperties 问题
- android - 如何使用 Android CameraX API 缩放相机?
- r - 如何在两个特定值之间重新编码一系列行
- c# - 无法从 azure vm 机器打开 selenium chrome 驱动程序到我的客户端机器?这甚至可能吗?