my $sth = $dbh->prepare("SELECT id, name, size, date FROM $table");
while (my @row = $sth->fetchrow_array) {
say "@row";
}
@row
-array中的元素是否始终与SELECT查询中写入的顺序相同?SQL:提取顺序
my $sth = $dbh->prepare("SELECT id, name, size, date FROM $table");
while (my @row = $sth->fetchrow_array) {
say "@row";
}
@row
-array中的元素是否始终与SELECT查询中写入的顺序相同?SQL:提取顺序
DBI模块通常依赖于数据库客户端库知道按照select语句的顺序返回列的想法。但是,如果您发现一半实施的模糊DBD(DB 驱动程序),则无法保证。
但是对于主流数据库客户端库,这是一个很好的假设,他们知道要返回select语句中列出的列。否则,这不是一种很好的SQL语言实现 - 因为这意味着SELECT
列。
但是,如其他帖子所述,行不能保证按顺序排列。为此,您可以使用:
SELECT id, name, size, date
FROM $table
ORDER BY id, name, size, date
除非您实际指定ORDER BY,否则不保证订单(来自SQL)。你有没有可以分类的专栏?
如果您需要依赖某个订单,则必须指定一个ORDER BY,否则数据库可以按照它认为合适的顺序自由返回行。
列将始终与SELECT查询中的顺序相同。
如果您需要特定顺序的行,您必须使用ORDER BY子句指定它。
+1用于提及列顺序 – 2011-05-02 14:10:39