我在 MySQL 上有一个这样的程序
SELECT t.name AS cat_name , f.id AS id_food
FROM food AS f, categories AS t
WHERE f.quantity > 0
AND t.id = f.id_cat
ORDER BY t.name
当我执行时它会显示一个表格
| cat_name | id_food |
| -------- | -------------|
| Seafood | 1 |
| Seafood | 3 |
| Seafood | 5 |
| Beef | 2 |
| Beef | 16 |
| Special | 7 |
想知道是否有什么东西可以使该表在其前面生成一个新的auto_increment id 字段?
这就是我希望执行时的样子
| new_id | cat_name | id_food |
|---- |------ | ----- |
| 1 | Seafood | 1 |
| 2 | Seafood | 3 |
| 3 | Seafood | 5 |
| 4 | Beef | 2 |
| 5 | Beef | 16 |
| 6 | Special | 7 |
最佳答案
如果你的 MySQL 版本支持 ROW_NUMBER
+ 窗口函数,你可以尝试这个。
SELECT ROW_NUMBER() OVER(ORDER BY t.name)new_id
t.name AS cat_name ,
f.id AS id_food
FROM food AS f
INNER JOIN categories AS t
ON t.id = f.id_cat
WHERE f.quantity > 0
ORDER BY t.name
关于MySQL存储过程如何生成新的auto_increment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70543545/