id     product    main_image
---    ---------- -----------
1      1          0
2      1          0
3      1          0

4      2          0
5      2          0
6      2          0

7      3          0
8      3          0
9      3          0
10     3          0


我想使用mysql查询来制作像这样的表字段数据(用于main_image)

id     product    main_image
---    ---------- -----------
1      1          1
2      1          0
3      1          0

4      2          1
5      2          0
6      2          0

7      3          1
8      3          0
9      3          0
10     3          0


我该怎么做?我想为产品设置主图像。
我有大约300万条记录,我尝试过php,但是速度太慢

最佳答案

您可以使用子查询从表中选择较小的ID:

UPDATE myTable
SET main_image = 1
WHERE id IN
  (SELECT MIN(temp.id)
   FROM (SELECT * FROM myTable) AS temp
   GROUP BY temp.product)

关于mysql - 如何从MySQL中的相同数据更新字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25619830/

10-17 03:06