我有一个包含100000行的MySQL表。
每行只有一列名为scrapy>=1.4.0
pymysql>=0.7.11
的列包含不同的unix-timestamp。数据类型为unixtime
。
除了那些unix-timestamp为星期一的行之外,你会用什么MySQL查询来删除所有行?
星期一在MySQL服务器的默认时区。
答案 0 :(得分:1)
当您说“删除”时,我不确定您是否要从表中删除它们或将它们从SELECT中排除,因此我已将两者都包括在内
SELECT *
FROM YourTable
WHERE DAYOFWEEK(FROM_UNIXTIME(YourColumn)) = 2
DELETE
FROM YourTable
WHERE DAYOFWEEK(FROM_UNIXTIME(YourColumn)) <> 2
答案 1 :(得分:1)
使用FROM_UNIXTIME和DAYNAME
功能DAYNAME(...) <> 'Monday'
DAYOFWEEK(..) <> 2
醇>
从问题中不清楚是否要过滤掉记录或实际删除表中的记录 所以我已经包含了用于过滤掉记录的select查询和删除以从表中删除那些记录。
选择查询
SELECT
*
FROM
[table]
WHERE
DAYNAME(FROM_UNIXTIME(unixtime)) <> 'Monday'
删除查询
DELETE
*
FROM
[table]
WHERE
DAYNAME(FROM_UNIXTIME(unixtime)) <> 'Monday'