我正在开发使用 Sqlite3 数据库进行存储的 android 应用程序。
最近我遇到了一个问题,我需要根据我在特定列上的条件从多个相似行中选择一行。
只是为了更具体...
源数据:
_id | code | language | data
1 | 1 | English | aaa
2 | 1 | French | bbb
3 | 1 | Spanish | ccc
4 | 1 | Portuguse| ddd
5 | 2 | English | eee
6 | 2 | French | fff
7 | 3 | English | ggg
8 | 4 | French | hhh
数据库中的多个条目可以具有相同的代码值和不同的语言值。
我的条件如下:
我应该至少有每个代码值的记录。
我必须根据我想要的语言进行搜索。假设如果我将语言设为西班牙语,我应该得到所有西班牙语的记录。
如果任何代码条目没有我给出的给定语言,那么我应该得到该代码的英文条目。
如果任何代码条目只有一种语言的记录,那么无论我给出的语言如何,我都应该得到该记录。
我对上表的预期结果:
如果我将语言设为西班牙语:-
3 | 1 | Spanish | ccc
5 | 2 | English | eee
7 | 3 | English | ggg
8 | 4 | French | hhh
我应该有 1,2,3,4 个代码值。
使用代码为 1 的语言西班牙语,我有西班牙语的记录,所以它应该来。
使用代码为 2 的语言西班牙语我没有西班牙语记录,因此应选择代码为 2 的记录和语言英语。
代码 3 和 4 记录只有一个条目,所以这些记录应该来。
我在网上搜索了很多关于如何在类似行上操作这些条件的信息,但我无法得到答案。有人可以帮助我查询预期结果吗?
提前致谢。