请建议我使用SQL查询对此进行排序。 有一个名为test.there的非规范化表,其中两个字段是主键,它是自动递增的。其他领域' name'它重复如下。
所以我只需要知道我应该使用什么插入/更新mysql查询来获得'出现'领域。
例如: - 在第5行名称'出现'值是3因为' name' =" chanaka"已包括3次在表中,包括记录5.
答案 0 :(得分:1)
阅读mysql行号模拟
这是一个例子
MariaDB [sandbox]> select id,company_id
-> , if(company_id <> @p ,@rn:=1, @rn:=@rn+1) occurance
-> , @p:=company_id
-> from medication, (select @rn:=0,@p:=0) rn
-> order by company_id, id;
+------+------------+-----------+----------------+
| id | company_id | occurance | @p:=company_id |
+------+------------+-----------+----------------+
| 1 | 1 | 1 | 1 |
| 2 | 1 | 2 | 1 |
| 3 | 1 | 3 | 1 |
| 4 | 2 | 1 | 2 |
| 5 | 2 | 2 | 2 |
| 6 | 2 | 3 | 2 |
| 8 | 2 | 4 | 2 |
| 7 | 3 | 1 | 3 |
+------+------------+-----------+----------------+
8 rows in set (0.00 sec)
答案 1 :(得分:0)
你应该能够计算“名字”,这应该可以得到你的数量 发生。
SELECT id, name, count(name)
FROM test
GROUP by name