1

データを挿入して更新しようとしています。問題は、思ったとおりに挿入されないことです。

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に順序がないことは理解していますが、クエリがこのように挿入されるのはなぜですか。

4

1 に答える 1

2

MySQLテーブルには固有の順序はありません。ORDER BY url_idそこから選択するときに使用します。

于 2012-12-25T00:18:23.240 に答える