SQL:获取顺序

时间:2011-05-02 13:56:22

标签: sql perl

my $sth = $dbh->prepare( "SELECT id, name, size, date FROM $table" );

while ( my @row = $sth->fetchrow_array ) {
    say "@row";
}

@row - 数组中的元素是否与SELECT查询中的元素顺序相同?

4 个答案:

答案 0 :(得分:4)

列将始终与SELECT查询中的顺序相同。

如果您想要按特定顺序排列,则必须使用ORDER BY子句指定它。

答案 1 :(得分:3)

如果您需要依赖某个订单,则必须指定ORDER BY,否则数据库可以按其认为合适的任何顺序自由返回行。

答案 2 :(得分:3)

DBI模块通常依赖于数据库客户端库知道以select语句的顺序返回列的想法。但是,如果您发现一些不明确的DBD(DB 驱动程序)已实现一半,则无法保证。

但对于主流数据库客户端库,可以很好地假设他们知道返回select语句中列出的列。否则,它不是SQL语言的良好实现 - 因为这对 SELECT 列意味着什么。

但是,正如其他帖子中所述,不保证按此顺序排序。为此你可以使用:

SELECT id, name, size, date 
  FROM $table
ORDER BY id, name, size, date

答案 3 :(得分:1)

除非您实际指定ORDER BY,否则不保证订单(来自SQL)。你有一个可以分类的专栏吗?