我最近創建了一個包含特定數據的新表 - 它將每天下載一次數據,並將按照 的順序發佈,但現在發生了一些奇怪的事情。我在php的sql語法中找不到任何錯誤,而且我也爲我的其他表執行相同的操作 - 完美無缺! 像往常一樣,我有一個唯一的主鍵,併爲每個新值遞增。 但現在 - 突然 - 三一天突然數據庫 店上面的最後一個值新行未插入升序 - MYSQL
我不明白什麼是錯的這個值。我不知道它是如何配置服務器或在我的語法錯誤嗎?正如我上面提到的 - 我的其他表工作和實現相同的語法。我在各種論壇上看到的 是從不保證數據按順序存儲如果你沒有指定這個。但是我找不到結合INSERT INTO和ORDER BY的任何語法。正如我所說 - 我有很多其他表,它們在基本相同的代碼下運行,並按照升序存儲我想要的數據。
我附上要顯示的圖片。可以看出,該服務器將新行的最後一個和第一之間 -
所以我的問題
1,爲什麼會出現這種情況? 2我該如何解決這個問題。
可以以某種方式聯合INSERT INTO語法和ORDER BY ???
$query = "insert into table (null, '$date', '$value1', '$value2');
可以SE的最後一行存儲在
您不應該對SQL數據庫中行的排序做任何假設:如果順序很重要,那麼您需要在SELECT語句中用ORDER BY明確指出這一點。 ORDER BY不適用於INSERT,因爲它是數據庫作業只是簡單地存儲您請求的數據,而您的作業是按照您僅在SELECTion上規定的順序檢索數據 –
@Mark Baker好的,謝謝! - 但只在選擇語句?我想從一開始就把新數據放在表格中(asc。order)。 – user2991252
數據庫的要點在於數據庫最清楚如何存儲數據;你知道你喜歡__看到它_有序,但是__看到它___你需要選擇它,因此ORDER BY與SELECT關聯 –