从SELECT语句创建INSERT语句 - 不需要的TAB(MYSQL)

时间:2015-07-01 14:14:52

标签: mysql

我正在使用以下SELECT语句创建一组INSERT语句:

SELECT 'insert into NOTE (id, value, business_key, last_timestamp) values (' , id, ',\'' , value, '\',\'', business_key, '\',\'', last_timestamp,  '\');' FROM NOTES;

不幸的是,当输出以下内容时,它使用了 TAB 字符来分隔列(这些字符出现在字符字段的列值中,因为我用引号加前缀并加上后缀):

insert into NOTE (id, value, business_key, last_timestamp) values ( 47  ,'  hghffhg ',' 17-1-01-S3  ',' 2015-06-26 14:42:49 ');

insert into NOTE (id, value, business_key, last_timestamp) values ( 48  ,'  1234567890  ',' 17-1-0A-S35BR   ',' 2015-06-29 15:31:57 ');

如何删除(TRIM)这些? 我已经尝试过围绕这个使用TRIM但是会出现语法错误!

顺便说一句,我在一个文件(notes.sql)中有这个SELECT语句,我将其传递给mysql: mysql< notes.sql

注意 - 不需要的TAB不在我提取的原始数据中,而是TAB分隔输出的结果。

2 个答案:

答案 0 :(得分:0)

试试这个,

SELECT 'insert into NOTE (id, value, business_key, last_timestamp) values (' , id, ',\'' , TRIM(value), '\',\'', TRIM(business_key), '\',\'', last_timestamp,  '\');' FROM NOTES;

答案 1 :(得分:0)

好的我决定修改创建的输出文件。

我用sed代替TAB没什么!

sed -i 's/\t//g' <FILENAME>