【问题标题】:Merging every 2 rows of a MySQL database table in a single row将 MySQL 数据库表的每 2 行合并为一行
【发布时间】:2016-05-31 14:16:05
【问题描述】:

我有一个数据库表,里面有人的指纹(template 列在这里),每个人可以引入 2 根手指,所以同一个人必须有 2 条记录。 这是表格:

ID 为“275”的人有 2 条记录,每条记录一个手指。 现在我正在使用 Talend 创建一个表,这样我可以将每两个指纹合并到一个表中,我的意思是第 n°37 和 38 行将在单行中,template 列将被连接起来只有一个 person_id

【问题讨论】:

  • 你有什么问题?
  • 如何将一个人的每2个指纹合并为一行?

标签: mysql database merge talend


【解决方案1】:

你可以试试这样的:

INSERT INTO newtable (ids, person_id_integer) 
SELECT CONCAT(finger1.id, "|", finger2.id), finger1.person_id_integer
FROM oldtable finger1, oldtable finger2
where finger1.person_id_integer = finger2.person_id_integer
and finger1.id <> finger2.id

当然,取决于您希望如何存储新数据

:)

【讨论】:

  • 感谢@Enrique 提供的解决方案,实际上我找到了其他解决方法并且它有效,我会将其作为回复发布,以便有人需要时可以找到它;)
【解决方案2】:

我找到了解决方案:

我添加了两次同一张表作为输入和输出,如图所示,并首先使用此查询获取它:

select FP_ID, FP_DEVICE, group_concat(FP_FINGER_PRINT SEPARATOR ''),FP_EMPLOYEE_ID
from t_finger_print GROUP BY FP_EMPLOYEE_ID;

【讨论】:

    猜你喜欢
    • 2017-08-20
    • 2013-06-01
    • 2023-04-02
    • 2022-01-14
    • 2019-01-14
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    相关资源
    最近更新 更多