返回信息流近期做一个期末课设,需要用jdbc连接数据库做一些高级检索。
例如
//主要资源
public String desti_price = "null";//挑选的价格
public Vector<String> dest_food;//想要吃点食物
//次要资源
public Vector<String> atmosphere;//想要的气氛
要根据上面列表中的要求从数据库中检索出适合的结果,
就是想问一下如何处理那个Vectro<String>,怎么做才能
让mysql返回至少满足atmosphere中的一个值,并且满足dest_food中的一个值的记录呢?
目前jdbc已经配置好了,就是不知道那个vector应该生成一个表去匹配还是直接用
select * from 特定表格 where foodName = atmosphere[0] OR foodName = atmosphere[1] 类似这种形式。
求指点。
这是一条镜像帖。来源:北邮人论坛 / database / #6793同步于 2012/5/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
mysql如何设计高级搜索
wugh
2012/5/22镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
不太清楚你的具体需求,是说不清楚jdbc的使用,还是不清楚哪种数据库查询更优。
你说的“select * from 特定表格 where foodName = atmosphere[0] OR foodName = atmosphere[1] 类似这种形式”可以简单的用“where...in...”代替,
至于考虑哪种语句效率更高,你可以根据实际数据情况比较“where...in...”和“生成一个表再join”等方法的差异
谢谢~
我是不大清楚哪种查询更优化一些。
目前我在程序中用的是那种where in 的方式,感觉实现了一些功能。
【 在 doubleKO 的大作中提到: 】
: 不太清楚你的具体需求,是说不清楚jdbc的使用,还是不清楚哪种数据库查询更优。
: 你说的“select * from 特定表格 where foodName = atmosphere[0] OR foodName = atmosphere[1] 类似这种形式”可以简单的用“where...in...”代替,
: 至于考虑哪种语句效率更高,你可以根据实际数据情况比较“where...in...”和“生成一个表再join”等方法的差异
另外SQL语句本身也是有长度限制的,虽然可能很大(64K?),但外部编程API会有更严格的限制,所以也最好不直接拼凑很长的SQL
【 在 grapland (grapland) 的大作中提到: 】
: 如果列表很长就是join了。
: sql语句是要全句编译的,理论上在sql语句中不应插入非常量个数据。