如何从 SQL table 中删除所有包含指定单词和日期的元素?

How can I delete from a SQL table all the elements that contain a specified word and a date?

我创建了这个 table:

CREATE TABLE IF NOT EXISTS news (
title TEXT PRIMARY KEY,
date INT DEFAULT '1556399472'
);

我想删除包含单词 'apple' 且 post 日期为 26/04/2019 UTC 的列。 我试过这样的事情:

DELETE FROM news WHERE title LIKE '%Apple%' AND date >= '1556236800' AND date <= '1556323140';

您的查询应该有效 - 前提是您有符合条件的行。

您可以直接在数据库中进行日期到纪元的转换,我也建议使用半开间隔(您的代码没有考虑当天的最后一分钟)。我会将查询表述为:

DELETE FROM news 
WHERE 
    title LIKE '%Apple%' 
    AND date >= strftime('%s', '2019-04-26') 
    AND date <  strftime('%s', '2019-04-26', '+1 day') 

'unixepoch' 修饰符可以在函数中使用 date() 到 return 格式为 'YYYY-MM-DD' 的日期,来自像 1556236800 这样的整数值:

date('1556236800', 'unixepoch')

returns:

2019-04-26

所以你的查询可以这样写:

DELETE FROM news 
WHERE title LIKE '%Apple%' 
AND date(date, 'unixepoch') = '2019-04-26'