标题:关于SQL命令的问题:实现复杂搜索
只看楼主
hd37
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-13
 问题点数:0 回复次数:7 
关于SQL命令的问题:实现复杂搜索
假设有一个名为user的表,其中有一个名为text的字段,这个字段存储了用户的年龄,身高,性别,月收入等信息,注意这些信息是存储在同一个字段的,信息之间用逗号隔开,格式为 '年龄,身高,性别,月收入'。比如,如果用户18岁,身高168cm,男性,月收入1000元,则对应的记录为 text='18,168,男,1000'
那么,如果我想查找所有年龄为20岁,身高170cm,月收入2000的男性用户,对应的SQL语句为 select * from user where text='20,170,男,2000'
我的问题就是,如果我想进行更高级的搜索,那么该如何写SQL语句呢?比如,我想查找所有年龄在16--20岁之间,身高在160cm--170cm之间,性别不限,月收入高于2000元的用户,该如何写SQL语句呢?请高手帮帮忙,谢谢了!
搜索更多相关主题的帖子: SQL 命令 身高 搜索 字段 
2006-10-26 18:00
hd37
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-13
得分:0 
没有办法解决么?55555555555
2006-10-26 19:01
makevcd
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-10-18
得分:0 
你哪个就不好实现了。一般都是一个字段放一个信息。现在你一个字段放若干个信息就不行了。
当然如果一定要这样就只能使用like来实现,但是效率太低了!
2006-10-26 21:06
hd37
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-13
得分:0 
用like怎么实现啊?效率低没关系,只要不用改数据表结构就行
2006-10-26 21:19
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
得分:0 
我感觉还是用二维数组实现的容易一些
说说我的方法,这个和菜单连动有点类似
就是先把ID和TEXT用,相连接,合成ID,年龄,身高,。。。这样的东西,然后把这个东西通过循环放进一个一维数组
然后用split(a[i],",")把每个数组分割成数组,这样通过数组下标的循环判断就可以查询到符合条件的ID,然后在根据符合条件的ID返回数据库查询

[此贴子已经被作者于2006-10-26 21:44:35编辑过]


[glow=255,green,2]相信微软,相信我!~[/glow]
2006-10-26 21:43
MicroSoft
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:2
帖 子:499
专家分:3
注 册:2006-10-12
得分:0 
以下是引用makevcd在2006-10-26 21:06:44的发言:
你哪个就不好实现了。一般都是一个字段放一个信息。现在你一个字段放若干个信息就不行了。
当然如果一定要这样就只能使用like来实现,但是效率太低了!

用LIKE可能查询到垃圾信息,比如你查询160,可能把身高的人给查询出来了,同时也把工资是1160,1600的人查询出来了。


[glow=255,green,2]相信微软,相信我!~[/glow]
2006-10-26 22:08
hd37
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-13
得分:0 
楼上的方法要在程序中编写额外的代码,我的意思是能不能只用几句SQL命令就实现这样的复杂搜索啊?等待中~~~~~~~~~~~
2006-10-27 12:37
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
应该自己先思考的!

程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2006-10-27 13:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-98966-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.510248 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved