[英]Sqlite3 and PDO issue with ORDER BY
我尝试使用SQL语句
SELECT * FROM table ORDER BY column
通过PHP中的PDO对象。 问题是,当使用所有列名EXCEPT的名称作为ID时,总是出现错误(在非对象上调用成员函数fetchall()-这意味着查询未返回PDO对象)。 当我查询
SELECT * FROM table ORDER BY ID
有用。 ID是PRIMARY INTEGER KEY,其他所有列都是TEXT或NUMERIC,它们都不适用于ORDER BY子句。
有任何想法吗?
正如您在对弗兰克·海肯斯(Frank Heikens)的回答的评论中所建议的那样,这可能与临时文件有关。
http://www.sqlite.org/tempfiles.html说:
2.6瞬态指数
SQLite可以利用瞬态索引来实现SQL语言功能,例如:
* ORDER BY或GROUP BY子句
*聚合查询中的DISTINCT关键字
*复合SELECT语句,由UNION,EXCEPT或INTERSECT连接
每个临时索引都存储在其自己的临时文件中。
如果创建文件的位置由SQLITE_TEMP_STORE
, PRAGMA temp_store
和PRAGMA temp_store_directory
,请参见http://www.sqlite.org/pragma.html
用ORDER BY CAST(COLUMN AS REAL)
替换您的ORDER BY
语句。 它可以对REAL
值进行排序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.