首页 > 解决方案 > mysql - 如何为列创建 id 列

问题描述

我想创建一个有 3 列的表:

  1. visit_times :每个特定访问者都有一个唯一的 id
  2. 访客ID
  3. 日期

我尝试创建表格以显示此代码

创建表testtable( visit_timesINT NOT NULL AUTO_INCREMENT , visitor_IDINT NOT NULL , DateVARCHAR NOT NULL , UNIQUE Unique column( visit_times, visitor_ID)) ENGINE = MyISAM;

但是当我将这些数据存储到表中时

INSERT INTO `tab`(`visitor_ID`, `date`) VALUES ("1", "15/05/2021");
INSERT INTO `tab`(`visitor_ID`, `date`) VALUES ("1", "20/07/2021");
INSERT INTO `tab`(`visitor_ID`, `date`) VALUES ("2", "02/09/2021");
INSERT INTO `tab`(`visitor_ID`, `date`) VALUES ("3", "24/08/2021");

结果会是这样

访问时间 访客ID 日期
1 1 15/05/2021
2 1 20/07/2021
3 2 2021 年 2 月 9 日
4 3 24/08/2021

以及我真正想要的结果

访问时间 访客ID 日期
1 1 15/05/2021
2 1 20/07/2021
1 2 2021 年 2 月 9 日
1 3 24/08/2021

服务器版本:8.0.21 - MySQL 社区服务器 - GPL

我使用 Wampserver 版本 3.2.3 - 64bit

阿帕奇版本:2.4.46


感谢您的帮助

标签: mysqlmysql-pythonwampservermysql-connector

解决方案


您可以使用row_number()

select row_number() over (partition by ID_of_visiter order by timecol) as num_of_visit,
       t.*
from t;

推荐阅读