我有一个包含重复单词的表格和一个名为“num”的空字段。
+----+--------------+-----+
| id | words | num |
+----+--------------+-----+
| 1 | red | |
+----+--------------+-----+
| 2 | blue | |
+----+--------------+-----+
| 3 | red | |
+----+--------------+-----+
| 4 | red | |
+----+--------------+-----+
| 5 | blue | |
+----+--------------+-----+
我想像这样在 num 字段中插入重复单词的数量:
+----+--------------+-----+
| id | words | num |
+----+--------------+-----+
| 1 | red | 1 |
+----+--------------+-----+
| 2 | blue | 1 |
+----+--------------+-----+
| 3 | red | 2 |
+----+--------------+-----+
| 4 | red | 3 |
+----+--------------+-----+
| 5 | blue | 2 |
+----+--------------+-----+
我如何通过 php 或 sql 执行此操作?
最佳答案
这适用于 MySQL
。
您可以加入一个子查询,它使用相关子查询根据 ID
在每个 words
上生成一个行号。
UPDATE tableName a
INNER JOIN
(
SELECT a.id,
(
SELECT COUNT(*)
FROM tableName c
WHERE c.words = a.words AND
c.id <= a.id
) AS RowNumber
FROM TableName a
) b ON a.id = b.id
SET a.num = b.rownumber
关于php - MySQL向列插入重复单词的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18948038/