LOAD DATA INFILE 可以接受 LINES STARTING BY 的正则表达式吗?

Can LOAD DATA INFILE accept regex for LINES STARTING BY?

我的文件格式:

-----------------------------------
|  CCAr|Next date |Cred. acct|
|---------------------------------|
|  1143|08/01/2019|123456789| 
-----------------------------------

我要加载到MariaDB 10.3的只有以1143

开头的数据行

有没有办法,MariaDB 可以只加载以 REGEXP '^\|\s*[[:digit:]]' 开头的行?

我尝试使用 LINES STARTING BY REGEXP '^\|\s*[[:digit:]]',但出现以下错误:

SQL Error [1064] [42000]: (conn:833) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'REGEXP '^\|\s*[[:digit:]]'

P.S.: 请注意我不能在这里使用 IGNORE x LINES 因为我的文件有重复的 header 行,为简单起见我没有在这里显示。

我认为不可能在 LOAD DATA 命令期间应用正则表达式或 where 过滤器。但是,您可以先读入所有行,然后再使用删除语句:

DELETE
FROM yourTable
WHERE NOT CCAr LIKE '1143%';

在 *nix 上,先关闭文件:

egrep '^1143'  < in.txt  > out.txt

LOAD DATA INFILE ... "out.txt" ...