0
  • 'process' 是准备好的语句的方法
  • 'QId' & 'UnqId' 是子外键(只是一个索引)

我想使用子查询等使其成为mysql 的一行语句(包括 3 个查询)

$get = $call->process("SELECT UnqId FROM table1
                     WHERE QId = ? AND UnqId = ?", 
                     array($_SESSION['Q'], $_SESSION['U']));
if($get) //if table exists
{
$call->process("UPDATE table1 SET col3 = ?, col4 = UTC_TIMESTAMP() 
              WHERE QId = ? AND UnqId = ?", 
                  array('OK', $_SESSION['Q'], $_SESSION['U']));
}
else
{
$call->process("INSERT INTO table1 VALUES (?, ?, ?, UTC_TIMESTAMP(),
               NULL, NULL, NULL, NULL)", 
                  array($_SESSION['Q'], $_SESSION['U'], 'OK'));
}
4

2 回答 2

1

查看ON DUPLICATE KEY UPDATE语法以在一个查询中执行此操作。并尝试下次搜索,例如。“重复的mysql更新”。

于 2013-08-01T08:30:49.190 回答
1

您可以使用一个查询ON DUPLICATE KEY UPDATE

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;
于 2013-08-01T08:31:22.203 回答