我的表格:blocked_peoples和成員。 在表blocked_peoples柱IPS = 構件柱signup_ip。php mysql更新兩個表/列
比方說,我想阻止訪問我的網站的人。我通過他的IP阻止用戶,並且它也更新成員表格和列禁止與。
總之,如果我更新表blocked_peoples(列IPS)和它的結果發現/相同部件(柱signup_ip)在部件表更新柱上用1
有可能禁止?如果是的話,SQL將如何看起來像?
我的表格:blocked_peoples和成員。 在表blocked_peoples柱IPS = 構件柱signup_ip。php mysql更新兩個表/列
比方說,我想阻止訪問我的網站的人。我通過他的IP阻止用戶,並且它也更新成員表格和列禁止與。
總之,如果我更新表blocked_peoples(列IPS)和它的結果發現/相同部件(柱signup_ip)在部件表更新柱上用1
有可能禁止?如果是的話,SQL將如何看起來像?
UPDATE blocked_peoples, members
SET members.banned = 1
WHERE members.signup_ip = blocked_peoples.ip
AND blocked_peoples.ip = 'ip.address.goes.here';
這是我能根據你的問題想出的最好的。雖然我不確定。在更新中使用兩個表是沒有意義的,因爲members表同時具有ip和「blocked」標誌。
步驟:
欲瞭解更多信息,請閱讀外鍵參考。
樂於幫助:)
我會建議擺脫blocked_peoples
表的完全如果到members
的關係是1比1。否則,您應該從members
中刪除banned
列,並特別依賴blocked_peoples
來檢查被禁止的IP。
實施例更新:
UPDATE `members` SET `banned` = 1 WHERE `signup_Ip` = '123.123.123.123';
示例選擇:
SELECT * FROM `members` WHERE `banned` = 1
參考:http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints .html – diEcho 2011-05-10 17:51:09
InnoDB需要外鍵和引用鍵上的索引,以便外鍵檢查可以很快並且不需要表掃描。 – diEcho 2011-05-10 17:51:53