【发布时间】:2022-01-13 14:18:16
【问题描述】:
我有一个 MySQL 表有两个重名,如何将重名的 ID 分隔到单独的列中?
---------------------------------
| id | name | surname |
---------------------------------
| 557 | Logan | Smith |
| 1052 | Logan | Smith |
---------------------------------
例如,像这样:
----------------------------------------
| id | id2 | name | surname |
----------------------------------------
| 557 | 1052 | Logan | Smith |
----------------------------------------
这是我当前在第一个表中检索当前结果的 SQL 语句:
SELECT userid as id, name, surname
FROM user
WHERE name = "Logan"
GROUP BY userid
每个名字最多只能重复一个。
谢谢
【问题讨论】:
-
也许您可以使用 mysql
group_concat,它不会将第二个 Id 移动到新列,但如果您对同一个人有超过 2 条记录,它会起作用。 stackoverflow.com/questions/9456380/… -
嗨!好问题!您是否正在尝试解决这一特定情况,仅针对
name = Logan?是只有一个重复还是可以有很多?根据您的用例会有不同的答案 -
@jarlh 我的错,我忘了删除它
-
@EoinS 您好,是的,还有更多条目,这只是问题的一个具体示例。但是每个名字只有一个重复
-
如果“数据库外部”解决方案是一个选项,您可以首先找出哪些数据库条目具有相同的名称,将它们存储在某种变量中,然后将它们移动到另一个表中.但是你将如何处理三个相同的名字呢?