不确定标题是否正确,所以有更好的解释:
表: users_data
uid | key | value
1 | "age" | "23"
1 | "city" | "London"
1 | "name" | "John"
2 | "age" | "19"
2 | "city" | "Tokio"
2 | "name" | "Aiko"
查询:选择23岁以下用户的数据。
结果应如下所示:
uid | age | city | name
1 | "23" | "London" | "John"
不要使用当前代码,因为我不知道是否可以按字段值来命名列,抱歉。
答案 0 :(得分:1)
你绝对可以在SQL中轻松完成这个...不幸的是,我不认为SQLite支持Pivot。
替代方案是代码密集程度更高,只有在事先知道密钥时才有效。
Select name.uid name.value, city.value, age.value from
(Select uid, value from users_data where key="name") as name
join (Select uid, value from users_data where key="city") as city on name.uid=city.uid
join (Select uid, value from users_data where key="age") as age on name.uid=age.uid