my $sth = $dbh->prepare( "SELECT id, name, size, date FROM $table" );
while ( my @row = $sth->fetchrow_array ) {
say "@row";
}@row-array中的元素是否始终与SELECT-query中的顺序相同?
发布于 2011-05-02 22:18:17
DBI模块通常依赖于这样一种想法,即数据库客户端库知道以select语句的顺序返回列。但是,如果你发现一些晦涩难懂的DBD (DB驱动程序)只实现了一半,它就什么都不能保证。
但对于主流数据库客户端库,很好地假设它们知道返回select语句中列出的列。否则,它就不是SQL语言的好实现--因为这就是它对SELECT列的意义。
然而,正如在其他帖子中提到的那样,不能保证行按该顺序排序。为此,您将使用:
SELECT id, name, size, date
FROM $table
ORDER BY id, name, size, date发布于 2011-05-02 22:00:41
列的顺序将始终与SELECT查询中的顺序相同。
如果希望按特定顺序排列行,则必须使用order BY子句指定它。
发布于 2011-05-02 21:58:10
如果需要依赖于某个顺序,则必须指定order BY,否则数据库可以自由地以它认为合适的任何顺序返回行。
https://stackoverflow.com/questions/5858032
复制相似问题