SELECT * FROM products where [...]将返回2+条目:
+------------+-------------+
| product_id | provider_id |
+------------+-------------+
| 0000001 | NULL |
+------------+-------------+
| 0000004 | 0032 |
+------------+-------------+
| 0000009 | NULL |
+------------+-------------+我正在寻找一个MySQL命令(如果它存在的话),它可以从provider_id (非空到其他NULL的行)填充
+------------+-------------+
| product_id | provider_id |
+------------+-------------+
| 0000001 | 0032 |
+------------+-------------+
| 0000004 | 0032 |
+------------+-------------+
| 0000009 | 0032 |
+------------+-------------+它肯定可以通过发出几个查询执行来在PHP中完成。但是,我愿意用php代码中处理最少的代码和MySQL/SQLite中的大部分处理来使其整洁。
谢谢你的帮助!
发布于 2013-06-12 16:30:28
简约的方法:
UPDATE products SET provider_id = (SELECT provider_id FROM products WHERE [...])
WHERE [...] -- same condition here
AND provider_id IS NULL -- this is probably useless这假设您的原始查询中只有一行(provider_id IS NOT NULL)。否则,它将失败,出现错误消息(而什么也不做)。
https://stackoverflow.com/questions/17070438
复制相似问题