我在尋找像這樣的查詢:將自動增量插入第二列
id | int |自動增量 東西| varchar | 255
insert into `table` set something = concat('val', id);
使表最終看起來像
1 | VAL1
2 | VAL2
3 | VAL3 ...
除了ID總是結束每行都爲val0
。
我該怎麼做?
我在尋找像這樣的查詢:將自動增量插入第二列
id | int |自動增量 東西| varchar | 255
insert into `table` set something = concat('val', id);
使表最終看起來像
1 | VAL1
2 | VAL2
3 | VAL3 ...
除了ID總是結束每行都爲val0
。
我該怎麼做?
mysql> describe concattest;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| val | text | YES | | NULL | |
+-------+------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
mysql> INSERT INTO concattest (val) VALUES (concat('val', LAST_INSERT_ID()));
Query OK, 1 row affected (0.06 sec)
mysql> select * from concattest;
+----+------+
| id | val |
+----+------+
| 1 | val0 |
+----+------+
1 row in set (0.00 sec)
mysql> INSERT INTO concattest (val) VALUES (concat('val', LAST_INSERT_ID()));
Query OK, 1 row affected (0.00 sec)
mysql> select * from concattest;
+----+------+
| id | val |
+----+------+
| 1 | val0 |
| 2 | val1 |
+----+------+
2 rows in set (0.00 sec)
mysql> INSERT INTO concattest (val) VALUES (concat('val', LAST_INSERT_ID()));
Query OK, 1 row affected (0.00 sec)
mysql> select * from concattest;
+----+------+
| id | val |
+----+------+
| 1 | val0 |
| 2 | val1 |
| 3 | val2 |
+----+------+
3 rows in set (0.00 sec)
爲什麼你需要這樣做? 會不會像 SELECT id,concat('val',id)as FldName FROM table 爲您工作? – Sparky 2011-05-12 01:39:25
這是一個過於簡化的例子,val實際上是一個代碼,所以實際的函數調用是'concat('1234',id,'567')'(1234和567是每次不同的長度不同的值)。 我基本上問,我怎麼能在同一個查詢中獲得insert_id。 – Hailwood 2011-05-12 01:42:14
我想你將不得不做一個UPDATE觸發器後插入檢索新的ID。 – garnertb 2011-05-12 01:47:01