我有一个有100000行的MySQL表。
每行只有一个名为unixtime的列,其中包含不同的unix-timestamp。数据类型为long。
除了unix-timestamp是星期一的那些行之外,您会使用什么MySQL查询来删除所有行?
星期一在MySQL服务器的默认时区。
发布于 2017-10-10 19:56:01
使用函数FROM_UNIXTIME和DAYNAME
DAYNAME(...) <> 'Monday'比DAYOFWEEK(..) <> 2读起来更清晰
从问题中不清楚是要过滤掉记录,还是要从表中实际删除记录,因此我包含了用于过滤记录的select查询和用于真正从表中删除这些记录的delete查询。
选择查询
SELECT
*
FROM
table
WHERE
DAYNAME(FROM_UNIXTIME(unixtime)) <> 'Monday'删除查询
DELETE
*
FROM
table
WHERE
DAYNAME(FROM_UNIXTIME(unixtime)) <> 'Monday'发布于 2017-10-10 19:54:40
当您说“删除”时,我不确定您是要从表中删除还是从SELECT中排除它们,因此我已将两者都包括在内
SELECT *
FROM YourTable
WHERE DAYOFWEEK(FROM_UNIXTIME(YourColumn)) = 2
DELETE
FROM YourTable
WHERE DAYOFWEEK(FROM_UNIXTIME(YourColumn)) <> 2https://stackoverflow.com/questions/46665025
复制相似问题