如何检查mysql中的记录发生

时间:2017-06-26 09:35:33

标签: mysql

请建议我使用SQL查询对此进行排序。 有一个名为test.there的非规范化表,其中两个字段是主键,它是自动递增的。其他领域' name'它重复如下。

enter image description here

所以我只需要知道我应该使用什么插入/更新mysql查询来获得'出现'领域。

enter image description here

例如: - 在第5行名称'出现'值是3因为' name' =" chanaka"已包括3次在表中,包括记录5.

2 个答案:

答案 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