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 値をネイティブ形式で使用する他のテーブルがある場合はなおさらです。

教師と管理者を区別する必要がある場合は、次の 2 つの点を考慮してください。

  1. このテーブルは、Teachers ではなく Personnel と呼ぶ必要があります。
  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

テーブルにそれが必要な場合は、テーブルに 2 番目の列を作成して、作成が次のようになるようにします。

CREATE TABLE  `teacher` (

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

次に、2 番目の列を ID と連結された「T」に設定するトリガーを作成します。

delimiter |

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

delimiter ;

または、アーロンが提案することを実行して、クエリ時に取得することもできます。

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