0

ID  |  NAME  | ADDRESS              |   EMAIL
===============================================================================
1   | Bob    | 999 bob street, UK   | bob@email.com
2   | Jimmy  | 123 jimmy house, USA | jimmy@email.com jimmy-partner@email.com

好的,这是我的问题,我有 10,000 多行看起来像 ID 1 和 2。其中一些甚至每个单元格有 3-6 封电子邮件,而其中大多数应该只有一个。

我需要一种方法来选择具有 2 封或更多电子邮件的行,复制整行并将复制的行替换为 2 封电子邮件之一,以便它们有自己的单独行。

ID  |  NAME  | ADDRESS              |   EMAIL
===============================================================================
1   | Bob    | 999 bob street, UK   | bob@email.com
2   | Jimmy  | 123 jimmy house, USA  | jimmy@email.com
3   | Jimmy  | 123 jimmy house, USA | jimmy-partner@email.com

谢谢大家的所有建议,因为它们都提供了可以在将来使用的有用信息。

4

2 回答 2

2

使用(我们称之为联系人表)

ID  |  NAME  | ADDRESS              
====================================
1   | Bob    | 999 bob street, UK   
2   | Jimmy  | 123 jimmy house, USA 

加入它(让我们说contacts_emails表):

ID  | Contact_id |   EMAIL
===============================================================================
1   | 1          | bob@email.com
2   | 2          | jimmy@email.com
3   | 2          | jimmy-partner@email.com
于 2013-07-24T03:29:51.920 回答
1

@您可以通过在 EMAIL 列中查找包含多个电子邮件的行来选择包含多个电子邮件的所有行:

SELECT * FROM test_table2 WHERE (LENGTH(EMAIL) - LENGTH(REPLACE(EMAIL, '@', ''))) > 1

然后您可以在 PHP 中处理这些结果并根据需要添加更多行。

正如评论中提到的,这可能不是组织数据的最佳方式,但它确实解决了这个问题。

在这里玩它:http ://sqlfiddle.com/#!2/d1f77/10

于 2013-07-24T03:35:43.673 回答