请教SQL语句写法

yolanda_freezing 2010-09-20 08:43:12
要对同一个表进行两次修改,两次修改都成功才能最后成功(也就是要具备事务的功能),但是如果在这里用事务的话,那么就执行不了,会被锁定,所以不知道这种情况应该如何处理好,请各位大大们指教!
假设要执行的SQL如下:

update tb_category set sortrank=sortrank-2 where category_id like '00'
update tb_category set sortrank=sortrank+2 where category_id like '11';
...全文
110 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yolanda_freezing 2010-09-20
  • 打赏
  • 举报
回复
虽然执行完成了,不过还是不明白1楼给的哪里出错了
yolanda_freezing 2010-09-20
  • 打赏
  • 举报
回复
啊,我错了,是忘记加%号了
WWWWA 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yolanda_freezing 的回复:]
3楼的执行结果不对,只修改了一个,而不是所有的LIKE
[/Quote]
贴记录及要求结果出来看看
yolanda_freezing 2010-09-20
  • 打赏
  • 举报
回复
3楼的执行结果不对,只修改了一个,而不是所有的LIKE
yolanda_freezing 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feixianxxx 的回复:]
SQL code
update tb_category
set sortrank=case when category_id like '00' then sortrank-2
when category_id like '11' then sortrank+2
else sortrank;


写成一句……
[/Quote]
这样写报错了,#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
WWWWA 2010-09-20
  • 打赏
  • 举报
回复
update tb_category set sortrank=sortrank+
if(category_id like '00',-1,if(ategory_id like '11',1,0))*2

ACMAIN_CHM 2010-09-20
  • 打赏
  • 举报
回复
如果这两句在同一个事务中应该没有问题啊。
feixianxxx 2010-09-20
  • 打赏
  • 举报
回复
update tb_category 
set sortrank=case when category_id like '00' then sortrank-2
when category_id like '11' then sortrank+2
else sortrank;


写成一句就好了
feixianxxx 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yolanda_freezing 的回复:]

引用 1 楼 feixianxxx 的回复:
SQL code
update tb_category
set sortrank=case when category_id like '00' then sortrank-2
when category_id like '11' then sortrank+2
else sortrank;


写成一句……

这样写报错了,……
[/Quote]
少了个END

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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