根据最近的日期时间更新列

时间:2016-03-09 14:05:09

标签: sql

我有一条声明,如果ColumnA符合LIKE查询并且ColumnB是最近的日期,我想要更新行ColumnC

我的ColumnCDateTime列,目前语句忽略了对最近DateTime的请求,并使用ColumnB更新所有记录。

这是

"UPDATE table1 SET ColumnA= '" + data +
"' WHERE ColumnB LIKE '" + variable +
"' AND MAX(ColumnC);"; 

1 个答案:

答案 0 :(得分:1)

你的

AND MAX(ColumnC);
据我所知,

对任何DBMS都无效。您可能希望使用相同条件过滤ColumnC最大值。

伪代码:

UPDATE table1 
SET ColumnA = data
WHERE ColumnB LIKE variable 
AND ColumnC = (SELECT MAX(ColumnC) from table1 WHERE ColumnB LIKE variable)

此外,在构建查询时,应始终使用parameterized queries。这种字符串连接对SQL Injection攻击开放。