Php 如何对这样的东西只进行一次查询

Php 如何对这样的东西只进行一次查询,php,mysql,optimization,Php,Mysql,Optimization,我正在努力提高这个过程的效率 mysql_query("UPDATE settings SET value = '" . time() . "' WHERE setting='roundtime'"); mysql_query("UPDATE settings SET value = '" . $curusers . "' WHERE setting='currentusers'"); mysql_query("UPDATE settings SET value = '" . $settingN

我正在努力提高这个过程的效率

mysql_query("UPDATE settings SET value = '" . time() . "' WHERE setting='roundtime'");
mysql_query("UPDATE settings SET value = '" . $curusers . "' WHERE setting='currentusers'");
mysql_query("UPDATE settings SET value = '" . $settingNum. "' WHERE setting='settingNum'");

我一直在为select使用内部联接和其他功能,但我不知道如何在此结构中使用UPDATE。

您可以按如下方式编写查询:

UPDATE settings
    set value = (case when setting = 'currentusers' then '" . $curusers . "'
                      when setting = 'roundtime' then '" . time() . "' 
                      when setting = 'settingNum' then '" . $settingNum. "'
                 end)
    where setting in ('roundtime', 'currentusers', 'settingNum');

有几个问题。尽管mysql_uu函数已被弃用,而且您应该使用参数,但这里也存在一个SQL问题。您将不同类型的数据存储在
值中
——一个时间加上其他两个时间。这似乎不是一个好的数据库设计。表中没有列是有原因的吗?

不,这是错误的,我试图在不同的位置一次更新所有单元格。不,这根本不是上述帖子的重复。