我有一个数据库,tick_df,看起来像这样
timestamp time symbol price
0 1649320867903 2022-04-07 08:41:07.903000+00:00 LUNA/USD:USD 108.3220
1 1649320867884 2022-04-07 08:41:07.884000+00:00 SOL/USD:USD 115.9125
2 1649320867321 2022-04-07 08:41:07.321000+00:00 LUNA/USD:USD 108.3220
3 1649320866243 2022-04-07 08:41:06.243000+00:00 LUNA/USD:USD 108.3300
4 1649320866225 2022-04-07 08:41:06.225000+00:00 AVAX/USD:USD 84.6590
5 1649320866144 2022-04-07 08:41:06.144000+00:00 AVAX/USD:USD 84.6640我试图从一个符号(例如and /美元:美元)中按下降时间顺序选择所有列和最后2行。我尝试过的查询是
SELECT symbol FROM tick_df WHERE symbol LIKE AVAX% ORDER BY timestamp DESC LIMIT2但这会返回一个错误
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "ORDER": syntax error有人能指出我在这里做错了什么吗。
谢谢
发布于 2022-04-07 09:53:04
如果您查看错误消息,它会告诉您在ORDER BY附近存在语法错误,它会提示在该子句之前出现错误。
你可以从文献资料上读到
字符串常量是通过将字符串用单引号(')括起来形成的。
您应该将LIKE arg用单引号括起来,如下所示
SELECT symbol FROM tick_df WHERE symbol LIKE 'AVAX%' ORDER BY timestamp DESC LIMIT 2另外,如果您想返回所有的列,那么应该是SELECT *,而不是SELECT symbol,因为后者只返回符号列。
最后一个正确的查询应该是
SELECT * FROM tick_df WHERE symbol LIKE 'AVAX%' ORDER BY timestamp DESC LIMIT 2https://stackoverflow.com/questions/71779307
复制相似问题