【问题标题】:Combining SQL statements组合 SQL 语句
【发布时间】:2016-12-21 15:37:33
【问题描述】:

我有以下两个 SQL 查询。它们单独使用相同的 php 脚本可以正常工作。在性能方面将它们结合起来会有优势吗?如果是这样,那是怎么做的。 COALESCE 部分让我很难过,因为我只希望该列只更新一次。

$sql_update = "INSERT INTO mobile_update(cust_id, last_name, first_name, dob) VALUES('$cust_id', '$last_name', '$first_name', '$dob') ON DUPLICATE KEY UPDATE last_name = '$last_name', first_name = '$first_name', dob = '$dob';";
$sql_initial_entry = "UPDATE mobile_update set initial_entry = COALESCE(initial_entry, NOW()) where cust_id = '$cust_id';";

【问题讨论】:

  • 为什么不是默认值?

标签: sql


【解决方案1】:

$sql_initial_entry 包含一个更新语句,它只更改现有行中的值(在上一个语句中生成)。我看不到“组合”这些查询的方法。我认为唯一可行的策略是将您的 initial_entry (似乎是日期/时间戳)设置为自动增量列 - 就像

ALTER TABLE `mobile_update' 
CHANGE COLUMN `initial_entry` `initial_entry` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;

发件人:SQL Auto-Increment by DateTime

这样您只需在插入语句中传递一个空值,它将填充当前时间戳。 Coalesce 只处理具有备用值的空值。如果您期望空值,则允许它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 2013-05-31
    • 2021-07-11
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多