我有一个带有重复单词的表和一个以"num"命名的空字段.
+----+--------------+-----+
| id | words | num |
+----+--------------+-----+
| 1 | red | |
+----+--------------+-----+
| 2 | blue | |
+----+--------------+-----+
| 3 | red | |
+----+--------------+-----+
| 4 | red | |
+----+--------------+-----+
| 5 | blue | |
+----+--------------+-----+
Run Code Online (Sandbox Code Playgroud)
我想在num字段中插入重复单词的数量,如下所示:
+----+--------------+-----+
| id | words | num |
+----+--------------+-----+
| 1 | red | 1 |
+----+--------------+-----+
| 2 | blue | 1 |
+----+--------------+-----+
| 3 | red | 2 |
+----+--------------+-----+
| 4 | red | 3 |
+----+--------------+-----+
| 5 | blue | 2 |
+----+--------------+-----+
Run Code Online (Sandbox Code Playgroud)
我怎么能用php或sql做到这一点?
这是为了MySQL.
您可以加入一个子查询,该子查询words根据ID使用的相关子查询生成每个rownumber .
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
Run Code Online (Sandbox Code Playgroud)