我有一条声明,如果ColumnA
符合LIKE查询并且ColumnB
是最近的日期,我想要更新行ColumnC
。
我的ColumnC
是DateTime
列,目前语句忽略了对最近DateTime的请求,并使用ColumnB更新所有记录。
这是
"UPDATE table1 SET ColumnA= '" + data +
"' WHERE ColumnB LIKE '" + variable +
"' AND MAX(ColumnC);";
答案 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攻击开放。