データを挿入して更新しようとしています。問題は、思ったとおりに挿入されないことです。
foreach($urls as $key => $value)
{
$mysqli->query("INSERT INTO urls (url_id,parent_id,url) VALUES ('$key','$parent_id','$value') ON DUPLICATE KEY UPDATE url = '$value'");
}
テーブルは次のようになります。
url_id | parent_id | url
1 | 1 | http://cnn.com
2 | 1 | http://msn.com
3 | 1 | http://amazon.com
最終的には次のようになります。
url_id | parent_id | url
1 | 1 | http://cnn.com
3 | 1 | http://amazon.com
2 | 1 | http://msn.com
別の行が挿入されると、次のようになります。
3 | 1 | http://amazon.com
SQLに順序がないことは理解していますが、クエリがこのように挿入されるのはなぜですか。