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

标签 mysql sql mariadb load-data-infile

我的文件格式:

-----------------------------------
|  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/

相关文章:

sql - 为什么我的 SQL 占位符没有被替换(使用 Go pq)?

php - 交易内 curl

php - MySQL/Html 编码

mysql - Codeigniter - 输入后数组插入 mysql 数据库

mysql - SQL子集查询

php - 如何在数据库查询生成器中分组以获得唯一值?

mysql - 如何在mysql中定义一个100亿行的key/value表?

php - Laravel 中的 JSON 给出错误 SQLSTATE[42000] : check the manual that corresponds to your MariaDB server

mysql - 如何使用 MySQL 设置 Docker for Symfony 项目?

php - 试图获取非对象的属性 - CodeIgniter