【发布时间】:2012-12-25 00:16:40
【问题描述】:
我正在尝试插入和更新数据。问题是它没有像我想象的那样插入。
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没有顺序,但是查询为什么会这样插入。
【问题讨论】:
-
SQL 中的表没有定义任何顺序,因此从字面上看,您不能以“错误的顺序”插入。
-
好的,但我想知道为什么它会这样插入。
-
嗯,这完全取决于实现。正如@AndreKR 所说,您想在查询数据时使用
order by;)