你update的时候where子句是什么?没有事先得到id吗?
用一个语句肯定是不行的。
但是,先 update atable where xxx...
再 insert into btable values( (select id from atable where xxx...),...)
虽然是两句也不是太麻烦
用一个语句肯定是不行的。
但是,先 update atable where xxx...
再 insert into btable values( (select id from atable where xxx...),...)
虽然是两句也不是太麻烦
-----------
给你一个思路 绝对可行
在更新前 你应该已经得到了需要更新的记录的id
将该id保存到一个变量中 update成功后在插入另一个表PHOTO中
你提出的 “你应该已经得到需要更新的记录的id”正是楼主想要用select取出的。而他却想将这一步与后面的update整合。基本上楼主只能分两步写了。一步是不行了。
-------------------------------------------------
这样是可以的,当然一个是mysql版本要支持(不清楚从哪个版本起支持,但4.1是支持的),另外一个是子查询的atable不可以和btable是同一个table(目前还不支持同一个表做子查询),而且子查询返回的必须只有一条记录,和需要插入的字段类型一致,否则需要转换
-------------------------------------------------是的,我的目的就是要取得这个ID,但我不想再次select,再mysql_query(),最后mysql_fetch_array,这么麻烦去取得,想知道有没有一个语句可以实现。----------------------------------
如果你的mysql版本不够,可能唯一的方法是php里操作一下。