0

可能重复:
如何将下一个最高数字插入数据库

我正在使用 MYSQL

我有一个名为 TeacherId 的列,它是自动递增的,如下所示:

TeacherId

1
2
3
4

我想要做的是在数字前面添加字母“T”,这样它就变成了:

TeacherId

T1
T2
T3
T4

我怎样才能更新或改变表来做到这一点?

以下是我的尝试,但没有奏效:

UPDATE Teacher SET TeacherId = CONCAT('T',TeacherId)
4

3 回答 3

5

我强烈建议您考虑在查询时将 T 附加到显示上,而不是尝试在每一行上存储一个 T。我不明白以这种方式存储数据的目的,特别是如果您有其他表以本机形式使用 TeacherId 值。

如果您需要区分教师和管理员,那么有两个想法:

  1. 该表应称为人员,而不是教师。
  2. 这仍然可以存储为单独的列,例如 PersonnelType。

我知道您可能被告知它应该显示为 T3 等,但他们肯定没有明确告诉您“我们希望您将 T 和 3 一起存储在同一列中,否则。” 您可以向他们展示 T3,而无需以糟糕且无法使用的设计将它们硬塞在一起。

于 2012-08-23T20:50:44.727 回答
1

选择数据并自动在 TeacherId 前添加字母 T:

SELECT *, CONCAT('T', TeacherId) AS TeacherId2 FROM Teacher
于 2012-08-23T21:03:40.673 回答
0

如果您必须在表中使用它,请在表中创建第二列,这样您的创建将如下所示:

CREATE TABLE  `teacher` (

`teacherId` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`t` CHAR( 10 ) NOT NULL DEFAULT ''
) 

然后创建一个触发器,将您的第二列设置为与您的 id 连接的“T”。

delimiter |

CREATE TRIGGER teacherInsert after INSERT ON teacher
  FOR EACH ROW BEGIN
    UPDATE teacher SET `t` = concat('T', teacherId);
  END;
|

delimiter ;

或者,您也可以按照 Aaron 的建议进行操作,并在查询时获取它:

select teacherId, concat('T', teacherId) from teacher
于 2012-08-23T21:12:48.757 回答