我的文件格式:
-----------------------------------
| 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
,因为我的文件有重复的标题行,为简单起见,我没有在此处显示这些行。
最佳答案
我不认为可以在 LOAD DATA
命令期间应用正则表达式或 where 过滤器。但是,您可以首先读取所有行,然后使用删除语句:
DELETE
FROM yourTable
WHERE NOT CCAr LIKE '1143%';
关于mysql - LOAD DATA INFILE 可以接受 LINES STARTING BY 的正则表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57406707/