最佳实践 - 从SQL中检索名称

时间:2017-12-12 21:29:18

标签: java android sql

这就是我目前检索会员的方式'基于ID的SQL数据库的名称。

它目前工作正常,但我认为最佳做法是以这种方式进行选择,因为如果有某种重复的ID,它可能会检索错误的名称。

有更好的方法吗?

objects

3 个答案:

答案 0 :(得分:1)

您的查询没有问题,因为其他人已经假设id是主键。如果您的数据库是以这种方式设计的,那么您将永远不必担心重复的密钥 - 它不会发生。

关于查询本身,也许你可以考虑准备好的语句。请参阅https://developer.android.com/reference/java/sql/PreparedStatement.html

答案 1 :(得分:0)

根据您所引用的SQL实现,您可以使用:

"SELECT TOP(1) [name] FROM [<schema>].[members] 
WHERE [id] = " + id + " 
ORDER BY <what_to_order_by> ASC/DESC "...

您通常希望包含表的架构名称,因为它可能不在默认架构中。您选择TOP TOP(1)只返回1个值,您通常会按ORDER BY建立唯一性所需的值。或者,如果建立唯一性需要多个列,则可以执行以下操作:

"SELECT TOP(1) [name] FROM [<schema>].[members] 
WHERE [id] = " + id + " AND [birth_date] = " + birth_date + "
ORDER BY <what_to_order_by> ASC/DESC "...

这都假设[id]列不是唯一的。如果它是主键或唯一,你仍然应该像我上面提到的那样在防御性方面进行编程。

答案 2 :(得分:0)

根据我的经验,rawQuery有时不适用于WHERE子句。尝试使用query()。 Android Documentation