你能提供的如何創建一個「計數」或「訂單」字段會自動增加一個非常簡單的MYSQL的例子,但在每次更改後重新啓動不同的領域?在下表中,每次「膳食」字段發生變化時,「訂單」字段將從「1」重新開始。謝謝。在另一列MYSQL更改後重置自動遞增場
吃飯的時間順序
午餐10:30 1
午餐11:00 2
午餐11:15 3
晚餐4:30 1
晚餐4:45 2
晚餐5:00 3
晚餐5:30 4
你能提供的如何創建一個「計數」或「訂單」字段會自動增加一個非常簡單的MYSQL的例子,但在每次更改後重新啓動不同的領域?在下表中,每次「膳食」字段發生變化時,「訂單」字段將從「1」重新開始。謝謝。在另一列MYSQL更改後重置自動遞增場
吃飯的時間順序
午餐10:30 1
午餐11:00 2
午餐11:15 3
晚餐4:30 1
晚餐4:45 2
晚餐5:00 3
晚餐5:30 4
自動遞增始終是每個表,你不能使之具體化一些列或索引。
如果你想擁有每列自動遞增的ID,你需要做手工。即當插入新項目時,請通過select MAX(id) FROM ... WHERE name = 'Dinner'
選擇最大ID,然後插入maximum+1
。
在某些報告中,您需要通過會話變量和case語句來實現它爲此在Select語句。請參閱this tutorial。
我想在MYSQL做什麼,工作的Microsoft SQL Server上有這樣的說法: 選擇ROW_NUMBER()以上(分區通過膳食爲了通過時間),*從YourTable –
我的問題是關於MySQL –
這樣做@ Manuel Morgado:我原來的問題還不清楚。看到更新的答案,中間有非常明顯的例子。 –
其特點是在MyISAM引擎可用,但不是在InnoDB的。它可以被模擬。請參閱MyISAM to InnoDB並搜索'abc'。這是它的要點:
BEGIN;
SELECT @id := IFNULL(MAX(id),0) + 1 FROM foo WHERE other = 123 FOR UPDATE;
INSERT INTO foo
(other, id, ...)
VALUES
(123, @id, ...);
COMMIT;
請問你能更具體..?你的描述會讓人混淆。 –
我不明白你的桌子,你能更清楚地描述一下嗎?你可以在這裏找到答案,http://dev.mysql.com/doc/refman/5.7/en/counting-rows.html –
我理想中MYSQL做,作品Microsoft SQL Server上有這樣的說法: 選擇row_number()結束(分區按時間順序排列)* from YourTable –