我有一个包含 2 列的表格:
nid realm
1 domain_id
1 domain_site
2 domain_id
3 domain_id
我希望每个条目都有 1 个域 ID 条目和 1 个域站点条目。所以我想结束:
nid realm
1 domain_id
1 domain_site
2 domain_id
2 domain_site
3 domain_id
3 domain_site
如果我在 PHP 中执行此操作,我将只遍历整个列表并在不存在的时候插入额外的行。不幸的是,我只有 PHPmyAdmin 访问这个数据库。有没有办法在直接 SQL 中执行此操作?
(如果它有所作为:该表目前大约有 3000 行,我认为其中大约 2000 行需要插入额外的行。此外,这是一次性的事情,因此不需要优化/优步-光滑。)
最佳答案
INSERT IGNORE INTO `table`
SELECT `alt1`.`nid`, `alt2`.`realm`
FROM `table` AS `alt1`, `table` AS `alt2`
关于SQL - 是否有执行 "foreach A in table, if !B, insert B"的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1274603/