MySQL Workbench与PHP执行时结果不一致

MySQL Workbench与PHP执行时结果不一致,php,mysql,Php,Mysql,我在PHP中使用以下MySQL语句,直接在MySQLWorkBench中输入这些语句会产生截然不同的意外结果: SET SQL\u SAFE\u UPDATES=0; 设置@idx=1; 更新数据库。表集合序列=9999,其中类别='MyCat'和序列=15; 更新数据库。表集序列=@idx:=@idx+1,其中category='MyCat'和sequence>=1和sequence您是从PHP执行如此多的单独查询,还是执行单个多语句查询? 如果是第一个,则会话变量@idx将不起作用 无论如何

我在PHP中使用以下MySQL语句,直接在MySQLWorkBench中输入这些语句会产生截然不同的意外结果:

SET SQL\u SAFE\u UPDATES=0;
设置@idx=1;
更新数据库。表集合序列=9999,其中类别='MyCat'和序列=15;

更新数据库。表集序列=@idx:=@idx+1,其中category='MyCat'和sequence>=1和sequence您是从PHP执行如此多的单独查询,还是执行单个多语句查询? 如果是第一个,则会话变量
@idx
将不起作用

无论如何,你为什么这样做? 这样的简单查询有什么错:

更新
数据库表
设置
序列=IF(序列=15,1,序列+1)
哪里
类别='MyCat'
顺序在1和15之间
;

我是作为单个语句执行的。我尝试了你的建议,但我得到了同样不可靠的结果。序列15不能代替序列1,其余的序列也不能按预期的顺序排列。奇怪的是,它在工作台或PHP中不起作用。我以序列0、3、4、5、6、7、8、9、10、11、12、13、14、15、15、16、16、17、18结束……我想不出代码可能不起作用的任何原因。这是一个非常简单的查询。您是否尝试按“原样”检查系统中的代码?你的MySQL版本是什么?(我已经登录MySQL 5.7和MariaDB 10.1)