我需要创建一个GUI,使用它可以选择用于查询数据库以查找合适人员的几个属性。我正在寻找如何根据用户的选择动态生成数据库查询的想法。如何根据用户的选择动态生成SQL查询?
查询将包含几个字段,但得到的想法,我会包括只有三个低于为例:
职业 - 可以有0到n职业字符串。如果给出职业字符串,其中一个必须匹配。
年龄 - 年龄可被给定为:
- 精确匹配(30)
- 范围(例如30-40)
- 比的值(-40)
- 少超过一个值(30-)
年龄参数在查询中是可选的。另外,用户可以指定年龄是否是必需的参数。如果不是必需的,并且一个人没有年龄是他/她的个人资料,那么这个人将忽略年龄标准。
- 高度 - 年龄相似
查询示例:
没有标准已经给出:
select * from persons
唯一的占领已经给出:
个select * from persons where occupation = 'dentist'
一些职业被赋予了:
select * from persons where (occupation = 'dentist' or occupation = 'engineer')
年龄已经给出一个大于价值,而且它需要在个人资料存在:
select * from persons where age >= 30
身高已经给出了作为并且不需要存在于人的简档上:
select * from persons where (height is null or (height >= 30 and height <= 40))
Combina不同的标准:
select * from persons where occupation = 'dentist' and age >= 30 and (height is null or (height >= 30 and height <= 40))
我已经实现了能够生成查询作为字符串的代码,但它肯定不是太漂亮。我正在寻找想法什么是最有效和最漂亮的方式来实现这一点。