当前位置: 代码迷 >> ASP.NET >> SQL有关问题,怎么SELECT多个LIKE条件中符合的那一列
  详细解决方案

SQL有关问题,怎么SELECT多个LIKE条件中符合的那一列

热度:9757   发布时间:2013-02-26 00:00:00.0
SQL问题,如何SELECT多个LIKE条件中符合的那一列。
请问:
我要做一个预搜索的功能,类似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
  相关解决方案