救急 mysql 语句优化问题

小北工作室 2012-08-23 03:53:43
UPDATE time_def SET MINUTE=1 WHERE id=(SELECT MIN(id) FROM (SELECT id FROM time_def WHERE MONTH=1) AS t)
能不能优化
这样的语句频繁操作
效率不高
大侠大虾
帮帮忙了
...全文
96 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小北工作室 2012-09-04
  • 打赏
  • 举报
回复
谢谢大家了
--小F-- 2012-08-23
  • 打赏
  • 举报
回复
恩 MYSQL里面有问题的。

试试5楼爱姐的
筱筱澄 2012-08-23
  • 打赏
  • 举报
回复
UPDATE time_def,(SELECT MIN(id) id FROM time_def WHERE MONTH=1) b 
SET MINUTE=1
WHERE time_def.id= b .id


试试这个

语句好像没有什么优化空间了
小北工作室 2012-08-23
  • 打赏
  • 举报
回复
我在mysql的phpMyAdmin里运行和在mysql的其他工具里运行都报错啊
错误信息:#1093 - You can't specify target table 'time_def' for update in FROM clause
你是在什么地方运行这个sql啊
[Quote=引用 3 楼 的回复:]
UPDATE time_def SET MINUTE=1 WHERE id=(SELECT MIN(id) FROM time_def WHERE MONTH=1)
貌似没有错误
[/Quote]
Ival 2012-08-23
  • 打赏
  • 举报
回复
UPDATE time_def SET MINUTE=1 WHERE id=(SELECT MIN(id) FROM time_def WHERE MONTH=1)
貌似没有错误
小北工作室 2012-08-23
  • 打赏
  • 举报
回复
这个样子是会报错的,
错误提示说,不能先select出同一表中的某些值,再update这个表(在同一语句中)

有没有高人指正下啊

[Quote=引用 1 楼 的回复:]
SQL code

UPDATE time_def SET MINUTE=1 WHERE id=(SELECT MIN(id) FROM time_def WHERE MONTH=1)
[/Quote]
--小F-- 2012-08-23
  • 打赏
  • 举报
回复
UPDATE time_def SET MINUTE=1 WHERE id=(SELECT MIN(id) FROM time_def WHERE MONTH=1)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧