php 中怎样用一条update 修改好几条记录

$sql="updateroomsetState='1'where(select*fromroomwhereStyle_id='$style_id'limit3)";这条... $sql="update room set State='1' where (select * from room where Style_id='$style_id' limit 3)";
这条语句对吗?
$sql="update room set State='1' where Style_id='$style_id' limit $num";
这条语句正确,但是修改不了State,为什么啊?
展开
 我来答
crazylaa
2010-12-23 · TA获得超过234个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:295万
展开全部
就是版本的问题。你这个版本的mysql不支持在子查询中包含limit!你可以改为:
update room set state='1' where style_id='1' limit 3即可达到一样的效果!
因为你的子查询中并不是查出3种state(否则要加distinct)而是查3条state记录!

修改不了是因为它原来就是state=1还是你修改了没有提交?
对于前者,你需要在where后面加上 and state <>'1'
对于后者,你执行完了之后,要 commit!
lwainixl
2010-12-23 · TA获得超过2096个赞
知道大有可为答主
回答量:3468
采纳率:62%
帮助的人:1707万
展开全部
子查询不支持LIMIT
update room set State='1' where State in (select State from room where Style_id='1' ) limit 3

这样写不是一样么?
如果你愿意 在子查询里面加个 排序。就更好了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abxde73
2010-12-24 · TA获得超过138个赞
知道答主
回答量:226
采纳率:0%
帮助的人:162万
展开全部
你要理解PHP中的 ' " MYSQL 中的 ` 区别

你把变量 $ID 用 ' ' 包起来了. $ID就成了字符串了.

试着把SQL语句输出.看你的SQL语句是怎样的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangjianlai52
2010-12-28 · TA获得超过184个赞
知道小有建树答主
回答量:414
采纳率:0%
帮助的人:175万
展开全部
$sql="update room set State='1' where Style_id>'$style_id' ";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式