【问题标题】:How to change multiple values with SQL?如何使用 SQL 更改多个值?
【发布时间】:2015-07-21 21:37:00
【问题描述】:

是否可以使用一个 sql 查询更改多个表值?例如,我的名为“newsletter”的表有一个名为“received”的列,其枚举值默认为 0。当我发送我的时事通讯时,此值更改为 1,因此收件人不会收到相同的电子邮件两次。我想制作一个脚本,在解析时会将所有接收到的值更改回 0,这样我就可以发送另一个时事通讯。到目前为止,我将提供我的 PHP 代码,并且我已经测试了链接和数据库连接文件,因此连接到数据库没有问题。

PHP

include_once "connect_to_mysql.php";
$rec_value =  mysql_query("SELECT * FROM newsletter WHERE received='1'");
$numRows = mysql_num_rows($rec_value);
while($row = mysql_fetch_array($rec_value)){
    $email = $row["email"];
    if ($numRows == 1) { 
        mysql_query("UPDATE newsletter SET received='0' WHERE email='$email'");
    } 
} 

有人可以帮我更改我的代码,以便在执行此脚本时将所有接收到的值设置回 0 吗?谢谢!

【问题讨论】:

标签: php mysql sql-server


【解决方案1】:

你的意思很简单:

UPDATE newsletter SET received='0'

MySQL 不会更新那些已经是 '0' 的行,并且会将具有其他值的行更新为 '0'。

但如果你想更准确,只更新那些接收到的行实际上是'1':

UPDATE newsletter SET received='0' WHERE received='1'

【讨论】:

  • 这和其他答案一样完美,但我喜欢您添加的选项,仅在设置为 1 时将其设置为 0,这将确保每个人即使签名也能收到信稍后再上。
【解决方案2】:

mysql_query("UPDATE newsletter SET received='0'"); 会将所有行重置为 0。

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多