请问:
我要做一个预搜索的功能,类似Google那样,输入框中的字符变化的时候,下面就列出条件符合的结果。条件有3个,只要符合其一就可。我用下面这个存储过程可以得到一个DataSet:
SELECT pname,typename,stylename
FROM products
WHERE pname like (@key + '%')
OR typename like (@key + '%')
OR stylename like (@key + '%')
ORDER BY pname,typename,stylename
但是问题是:我要把这个产品符合条件的那一个字段的值显示到列表中,可我并不知道是哪一个字段。
有没有办法直接在存储过程中只返回符合条件的那个字段的值(即只 SELECT 3列中的1列,是符合的那列)。
------解决方案--------------------------------------------------------
如果 3列 都有 符合的 你要怎么处理
- SQL code
SELECT pnameFROM products WHERE pname like (@key + '%') union all SELECT typenameFROM products WHERE typename like (@key + '%') union all SELECT stylename FROM products WHERE stylename like (@key + '%')
------解决方案--------------------------------------------------------
把SQL语句改一下,另外后台在查询字段前也加个%
- SQL code
SELECT pname FROM products WHERE pname like ('%'+@key + '%') union all SELECT typename FROM products where typename like ('%'+@key + '%') union all SELECT stylename FROM products where stylename like ('%'+@key + '%')
------解决方案--------------------------------------------------------
- SQL code
select * from(SELECT pname as name,clickcount FROM products WHERE pname like (@key + '%') union SELECT typename,clickcount FROM products WHERE typename like (@key + '%') union SELECT stylename,clickcount FROM products WHERE stylename like (@key + '%')) t order by name,clickcount