如果另一个表中的列中的四个值中的任何一个为“1”,我想将表中一列的值从“0”更新为“1”。不知何故,这似乎不起作用,我只是想知道是否有人可以帮助我正确的代码或找到一种不同的方式,如果它不可能,
mysql_query("UPDATE members
INNER JOIN forum_banners ON members.id = forum_banners.userid
SET members.beta = '1' WHERE forum_banners.bebeta = '1' OR
forum_banners.bibeta = '1' OR forum_banners.cbeta = '1' OR
forum_banners.wbeta = '1'") or die(mysql_error());
这就是我尝试过的,但它没有用,我怀疑是因为OR。我尝试在不同的mysql_query位中进行所有更新,但这也不起作用。
答案 0 :(得分:0)
您应该能够从多个表引用更新。这是未经测试的,但给你一个想法:
UPDATE
members, forum_banners
SET
members.beta = '1'
WHERE
members.id = forum_banners.userid
AND forum_banners.bebeta = '1'
OR forum_banners.bibeta = '1'
OR forum_banners.cbeta = '1'
OR forum_banners.wbeta = '1'
http://dev.mysql.com/doc/refman/5.0/en/update.html
注意"多表语法"
答案 1 :(得分:0)
尝试
UPDATE
m
SET
m.beta = '1'
FROM
members m
INNER JOIN
forum_banners fb
ON m.id = fb.userid
WHERE
fb.bebeta = '1'
OR fb.bibeta = '1'
OR fb.cbeta = '1'
OR fb.wbeta = '1'"
别名也有助于使你的语法更整洁。