【问题标题】:Order by id desc in google app engine在谷歌应用引擎中按 id desc 排序
【发布时间】:2023-03-13 23:22:01
【问题描述】:

我使用我的表格模型在 Eclipse 中使用谷歌应用引擎数据存储。 id 只是来自 android 的日期和时间。

我可以像这样按行查询,它确实有效!

select from Quotes as Quotes ORDER BY votes DESC

我想通过我的实体 ID 取回我的结果,但是这个查询不起作用

select from Quotes as Quotes ORDER BY Id DESC

这是我的桌子。我如何通过我的 id/Name 查询并相信我已经尝试过

select from Quotes as Quotes ORDER BY ID/Name DESC

编辑:你可能注意到我有一个假人。我不想使用该行,因为我以一种非常 hacky 的方式制作它,并且需要在用户端进行额外加载。

【问题讨论】:

标签: java android mysql sql google-app-engine


【解决方案1】:

哦,亲爱的。我现在看到了问题。您有一个名为 ID/Name 的列。将标识符限制为字母数字字符通常是明智的。

您可以重命名该列吗?这将是最好的进步。

如果这不是一个选项,您可以将其包装在反引号中,以便将其视为标识符:

SELECT * FROM Quotes ORDER BY `ID/Name` DESC;

请参阅SQL Fiddle,它几乎肯定与您的架构不匹配,但应该能够理解这一点。

【讨论】:

  • 谢谢拉特!现在效果很好!不幸的是,我不知道,当我“生成我的后端”时,谷歌为我生成了该列,我只是设计了谷歌完成其余部分的模型。无论哪种方式现在都有效!哈
【解决方案2】:

Id/Name 是关键字段,想象一下它类似于主键。要在查询中引用该字段,请使用

__key__
Example: select * from EntityTable where __key__ = Key('EntityTable', ....)

在您的示例中,使用日期/时间作为键名并不是很有帮助,也许您可​​以找到其他信息用作键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 2023-04-06
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多