我正在使用以下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分隔输出的结果。
答案 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>