当前位置: 代码迷 >> Sql Server >> 关于搜索数据库,该如何处理
  详细解决方案

关于搜索数据库,该如何处理

热度:101   发布时间:2016-04-27 19:23:00.0
关于搜索数据库
单曲名称:
所属专辑:
作曲:
作词:
演唱:
演奏:
指挥:
乐器:请选择(ID)
时间:
唱片公司:请选择(ID)
流派: 请选择(ID)
风格:请选择(ID)
主题: 请选择(ID)

等.

主表是Songs表

还有些数据记录在附表中~
我想实现高级搜索~

用一个存储过程过滤出来歌曲的IDS 然后在主表中找到相关歌曲~~

但是遇到的问题是:20个参数,判断如何实现..(20个里面是任意选择的~)
可能是一个,也可能是非个~或者任意几个~
指教下~ 谢谢~


------解决方案--------------------
SQL code
select  a.* from song ainner join ...附属表1on ..inner join ...附属表2on ..where songname like '%' + isnull(nullif(@songname,''),songname) + '%'    and AlbumsName like '%' + isnull(nullif(@AlbumsName,''),AlbumsName) + '%'    and Composer = isnull(nullif(@Composer),Composer )    and ...这样就可以了,无论参数给''这样的空字串,还是null值,都可以进行匹配.具体的我就不写了,你自己跟具需要处理一下.
  相关解决方案