Php 如何使用或对内部联接进行更新查询
如果另一个表中列中的四个值中的任何一个为“1”,我想将表中一列的值从“0”更新为“1”。不知何故,这似乎不起作用,我只是想知道是否有人可以帮助我获得正确的代码,或找到一种不同的方式来做,如果这是不可能的Php 如何使用或对内部联接进行更新查询,php,mysql,Php,Mysql,如果另一个表中列中的四个值中的任何一个为“1”,我想将表中一列的值从“0”更新为“1”。不知何故,这似乎不起作用,我只是想知道是否有人可以帮助我获得正确的代码,或找到一种不同的方式来做,如果这是不可能的 mysql_query("UPDATE members INNER JOIN forum_banners ON members.id = forum_banners.userid SET members.beta = '1' WHERE foru
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_查询位中进行所有更新,但也不起作用。您应该能够从多个表引用进行更新。这是未经测试的,但给了您一个想法:
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'
注意“多表语法”试试看
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'"
别名也有助于使您的语法更整洁。可能重复:您的查询对我来说应该是可行的。。。它以什么方式不起作用?您确定
forum\u banner
中有符合此标准的行吗?这非常适合其他类型的SQL,但MySql对update语句中的多个表有不同的语法。