我的文件格式:
-----------------------------------
| 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错误[1064] [42000]:(conn:833)您的SQL错误 句法;检查与您的MariaDB服务器相对应的手册 在'REGEXP'^ \ | \ s * [[:: digit:]]'
附近使用的正确语法的版本
P.S .:请注意,我在这里不能使用IGNORE x LINES
,因为我的文件有重复的标题行,为简单起见,在此不再显示。
答案 0 :(得分:1)
我不认为可以在LOAD DATA
命令期间应用正则表达式或where过滤器。但是,您可以先读取所有行,然后再使用delete语句:
DELETE
FROM yourTable
WHERE NOT CCAr LIKE '1143%';
答案 1 :(得分:0)
在* nix上,首先对文件进行加密:
egrep '^1143' < in.txt > out.txt
LOAD DATA INFILE ... "out.txt" ...