我有一个日期为字符串的数据库,我必须删除 csv 文件中与数据库中具有相同数据的行。更准确地说,我的日期看起来像这样 2018-03-31T23:30:24+00:00。我希望当它得到这样的日期时,从数据库中删除数据像%2018-03-31%的数据,这样它就会删除当天的所有记录,即使时间不同。
我有一份工作,其中 tFileInputDelimited 与 tSortRow 连接,然后连接到 tFlowToIterate。之后,我有一个 tJava,在其中提取日期,然后有一个 tMysqlInput,其中查询具有如下的 where 子句: WHERE purchase_date
LIKE '%"+context.date+"%' 。然后,通过 run if 连接,我有 tMysqlRow,其中有带有相同 where 子句的删除语句。当然,之后我就有了 tMysqlCommit。
context.date 的制作方式如下:
context.dataaa=(String)globalMap.get("row6.purchase_date");
context.month=context.dataaa.substring(5,7);
context.year=context.dataaa.substring(0,4);
context.day=context.dataaa.substring(8,10);
context.date=context.year+"-"+context.month+"-"+context.day;
问题是,它不会从数据库中删除。我希望它逐行删除 csv 和数据库中同一天的所有记录。
最佳答案
问题出在单独比较完整日期的 if 语句中,因此我只能比较日期,而不是日、年和月。
关于java - 如何在 Talend 中使用 LIKE 运算符和上下文变量 MySQL 从数据库中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49668392/