关于搜索数据库,该如何处理
关于搜索数据库
单曲名称:
所属专辑:
作曲:
作词:
演唱:
演奏:
指挥:
乐器:请选择(ID)
时间:
唱片公司:请选择(ID)
流派: 请选择(ID)
风格:请选择(ID)
主题: 请选择(ID)
等.
主表是Songs表
还有些数据记录在附表中~
我想实现高级搜索~
用一个存储过程过滤出来歌曲的IDS 然后在主表中找到相关歌曲~~
但是遇到的问题是:20个参数,判断如何实现..(20个里面是任意选择的~)
可能是一个,也可能是非个~或者任意几个~
指教下~ 谢谢~
------解决方案--------------------
单曲名称:
所属专辑:
作曲:
作词:
演唱:
演奏:
指挥:
乐器:请选择(ID)
时间:
唱片公司:请选择(ID)
流派: 请选择(ID)
风格:请选择(ID)
主题: 请选择(ID)
等.
主表是Songs表
还有些数据记录在附表中~
我想实现高级搜索~
用一个存储过程过滤出来歌曲的IDS 然后在主表中找到相关歌曲~~
但是遇到的问题是:20个参数,判断如何实现..(20个里面是任意选择的~)
可能是一个,也可能是非个~或者任意几个~
指教下~ 谢谢~
------解决方案--------------------
- SQL code
select a.* from song a inner join ...附属表1 on .. inner join ...附属表2 on .. where songname like '%' + isnull(nullif(@songname,''),songname) + '%' and AlbumsName like '%' + isnull(nullif(@AlbumsName,''),AlbumsName) + '%' and Composer = isnull(nullif(@Composer),Composer ) and ... 这样就可以了,无论参数给''这样的空字串,还是null值,都可以进行匹配.具体的我就不写了,你自己跟具需要处理一下.