Sqlite3和PDO与ORDER BY问题

时间:2010-04-05 14:55:02

标签: php sqlite pdo sql-order-by

我尝试使用SQL语句

SELECT * FROM table ORDER BY column

通过PHP中的PDO-Object。问题是,我总是得到一个错误(在非对象上调用成员函数fetchall() - 这意味着,当使用所有列名EXCEPT的ID作为ID时,查询没有返回PDO对象)。当我查询

SELECT * FROM table ORDER BY ID

它有效。 ID是PRIMARY INTEGER KEY,所有其他列都是TEXT或NUMERIC,它们都不适用于ORDER BY子句。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

可能是临时文件的问题,正如您在对Frank Heikens的回答中所建议的那样。

http://www.sqlite.org/tempfiles.html说:

2.6瞬态指数

SQLite可以利用瞬态索引来实现SQL语言功能,例如:

    * ORDER BY或GROUP BY子句
    *聚合查询中的DISTINCT关键字
    *由UNION,EXCEPT或INTERSECT连接的复合SELECT语句
每个瞬态索引都存储在自己的临时文件中。

创建文件的位置和位置由SQLITE_TEMP_STOREPRAGMA temp_storePRAGMA temp_store_directory控制,请参阅http://www.sqlite.org/pragma.html

答案 1 :(得分:0)

ORDER BY声明替换为 ORDER BY CAST(COLUMN AS REAL)。 它可以对REAL值进行排序。