我正在尝试将oracle merge语句转换为mysql update语句。这个特殊的merge语句只做一个更新(不插入),所以不清楚以前的工程师为什么使用merge语句。
不管怎样,我知道需要将其转换为mysql,但不清楚是如何实现的。(边注,我在Java应用程序中这样做)
下面是merge语句:
MERGE INTO table1 a
USING
(SELECT DISTINCT(ROWID) AS ROWID FROM table2
WHERE DATETIMEUTC >= TO_TIMESTAMP('
formatter.format(dWV.getTime())
','YYYY-MM-DD HH24:MI:SS')) b
ON(a.ROWID = b.ROWID and
a.STATE = 'WV' and a.LAST_DTE = trunc(SYSDATE))
WHEN MATCHED THEN UPDATE SET a.THISIND = 'S';
我的尝试是这样的:
UPDATE table1 a
INNER JOIN table2 b ON (a.ROWID = b.ROWID
and a.STATE = 'WV'
and a.LAST_DTE = date(sysdate()))
SET a.THISIND = 'S'
WHERE DATETIMEUTC >= TO_TIMESTAMP('formatter.form(dWV.getTime())', 'YYYY-MM-DD HH24:MI:SS')
但是,我不清楚这是不是真的在做同样的事情?