首页 > 解决方案 > 换行后插入新列

问题描述

我有一个基本的插入查询,用于将地址从一个表复制到另一个表。对于我从中插入的表,我有一个名为 Address 的列,它需要插入到我的第二个表的 Address1 和 Address2 中。但是,我只希望在任何换行符 (\n) 之后的值table1.address进入table2.address2,显然之前的所有内容都会进入table2.address1. 这可能吗?

INSERT INTO table2.shipin
  (address1,
  address2)
SELECT
  table1.address,
  ''
FROM schema.table1;

这基本上就是我现在所拥有的一切table2.address1

标签: mysql

解决方案


根据上面的建议,我使用 substring_index 来完成我想要的,这是最终的解决方案:

Select
substring_index(table1.address, '\n', +1) AS `Address1`,
IF(table1.address REGEXP '\n',
    substring_index(table1.address, '\n', -1),
    '') AS `Address2`,

对于地址 1,这会将任何内容放在列中的换行符之前,对于地址 2,如果地址中有换行符,它将在提要之后将任何内容放入地址 2,否则它将返回空白。


推荐阅读