【发布时间】:2012-11-27 18:27:03
【问题描述】:
我最近运行了一个脚本,将数据从一个大表(大约 20 GB)复制到另一个,我搞砸了,日期时间列(称为timestamp)的列值被保存到另一个带有 varchar 的列中数据类型(称为category_name),而timestamp 值要么设置为NULL,要么具有一系列随机日期时间值(如0000-00-00 00:00:00、0003-02-01 00:00:00、1990-12-00 00:00:00 等)。我复制到的表也不断获取新数据。然而,新数据并未损坏。我正在尝试确定我的好数据开始的行的确切 ID。请注意,category_name 列的有效值要么是字母值,要么是 NULL。我尝试了以下查询 -
SELECT * FROM table_name
WHERE `timestamp` IS NOT NULL
AND `timestamp` != "0000-00-00 00:00:00"
ORDER BY id;
那时我发现timestamp列中保存了各种值。
我接下来尝试了
SELECT * FROM table_name WHERE category_name REGEXP '[^a-zA-Z]' LIMIT 10;
这不起作用。
SELECT * FROM table_name WHERE category_name REGEXP '[:alpha:]' LIMIT 10;
这也不起作用。
任何帮助将不胜感激,谢谢。我只是想从我的category_name 列开始获取有效数据而不是日期时间字符串的位置获取大致的 ids/rows 范围。
【问题讨论】:
标签: mysql regex string datetime