问题
I am looking to do a query like so:
id | int | autoincrement something | varchar | 255
insert into `table` set something = concat('val', id);
so that the table ends up looking like
1|val1
2|val2
3|val3...
except that id always ends up being val0
for every row.
How can I do this?
回答1:
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)
来源:https://stackoverflow.com/questions/5972446/insert-autoincrement-into-second-column