我要在数据库里查数据
规则是这样的:
我要输入“上海 徐汇”就能查出所有带“上海 徐汇”字样的数据(另外,条件不一定只有2个,比如“上海 徐汇 办事处”写可以查)
我现在是这样写的:
[code="java"]String keyword=keyword.trim().replace(" ", "%");
String sql="select * from 表名 where region like '%"+keyword+"%'";[/code]
这样输入“上海 徐汇 办事处”,就会输出语句如下:
[color=red]sql="select * from 表名 where region like '%上海%徐汇%办事处%';[/color]
现在有问题,假如我输入查询条件“办事处 徐汇 上海”,这样倒过来输,我也要查出这些数据,该怎么办?
像下面这样,效率太低;
[color=red]sql="select * from 表名 where region like '%上海%' and region like '%徐汇%' and region like '%办事处%';[/color]
另外,加入条件是不限定的,比如,也可以输入4个条件“上海 徐汇 街道 办事处”就不适合了。
各位sql大侠们,有没有写过这样的sql啊,谢谢大家了。
[b]问题补充:[/b]
也不要像百度那样太复杂的搜索功能的,
其实我的目的就是查出region这个字段里带“%上海%徐汇%办事处%”这样的数据,
只是
[color=red]sql="select * from 表名 where region like '%上海%' and region like '%徐汇%' and region like '%办事处%'; [/color]
这样写太烦了而已。
能不能先查出带%上海%的所有数据,再在查出的数据里查带%徐汇%的数据,再在其中查出带%办事处%的记录。
这样要用复合查询语句吧?
怎么写?