mysql - 如何为列创建 id 列
Posted
技术标签:
【中文标题】mysql - 如何为列创建 id 列【英文标题】:mysql - how to create a id column for a column 【发布时间】:2021-10-31 10:09:51 【问题描述】:我想创建一个有 3 列的表:
-
visit_times :为每个特定访问者设置一个唯一 ID
visitor_ID
日期
我尝试创建显示此代码的表格
创建表
test
.table
(visit_times
INT NOT NULL AUTO_INCREMENT,visitor_ID
INT NOT NULL,Date
VARCHAR NOT NULL, UNIQUEUnique 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_times
行 visit_times
并使用它。您现在无法控制该列,因此要么定义不正确,要么您的逻辑有缺陷。
【参考方案1】:
你可以使用row_number()
:
select row_number() over (partition by ID_of_visiter order by timecol) as num_of_visit,
t.*
from t;
【讨论】:
但我希望它作为一个列在 python 中使用它并在 tkinter 的表中显示数据????以上是关于mysql - 如何为列创建 id 列的主要内容,如果未能解决你的问题,请参考以下文章