【问题标题】:mysql - how to create a id column for a columnmysql - 如何为列创建 id 列
【发布时间】:2021-10-31 10:09:51
【问题描述】:

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

  1. visit_times :为每个特定访问者设置一个唯一 ID
  2. visitor_ID
  3. 日期

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

创建表test.table (visit_times INT NOT NULL AUTO_INCREMENT, visitor_ID INT NOT NULL, Date VARCHAR NOT NULL, UNIQUE Unique column (visit_times, @98765) = 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");

结果会是这样的

visit_times visitor_ID date
1 1 15/05/2021
2 1 20/07/2021
3 2 02/09/2021
4 3 24/08/2021

以及我真正想要的结果

visit_times visitor_ID date
1 1 15/05/2021
2 1 20/07/2021
1 2 02/09/2021
1 3 24/08/2021

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

我使用 Wampserver 版本 3.2.3 - 64 位

Apache 版本:2.4.46


感谢您的帮助

【问题讨论】:

  • 根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
  • 仅供参考,“visiter”的英文拼写为“visitor”。
  • visit_times 列被定义为 AUTO_INCREMENT,所以您告诉 MySQL 将一个添加到前面的 visit_timesvisit_times 并使用它。您现在无法控制该列,因此要么定义不正确,要么您的逻辑有缺陷。

标签: mysql mysql-python wampserver mysql-connector


【解决方案1】:

你可以使用row_number():

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

【讨论】:

  • 但我希望它作为一个列在 python 中使用它并在 tkinter 的表中显示数据????
猜你喜欢
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
相关资源
最近更新 更多