select *  from  表 
where 
字段1 like @keyWord  or
字段2 like @keyWord  or
字段3 like @keyWord  or
字段4 like @keyWord  or
字段5 like @keyWord 。。这样的语句如何优化?

解决方案 »

  1.   

    很多?like 改为 =试试用union看看
      

  2.   

    (字段1 + 字段2 + 字段3 +字段3) like ('%' + @keyWord +'%')
    这样不知道可不可以?
      

  3.   

    没什么优化的,简化sql倒是可以,效率还是提不上去
      

  4.   

    select * from 表 
    where 
    字段1 like @keyWord or
    字段2 like @keyWord or
    字段3 like @keyWord or
    字段4 like @keyWord or
    字段5 like @keyWord 。。如果(字段1-5)數據類型長度都一樣,在准許的情況下,考慮篩分表結構。
    另建1個表描述(字段1-5)的值。
    e.g.
    表擴展信息(源表ID,字段名,數據)
    --------------------------------------
    1   字段1  value1
    1   字段2  value2
    1   字段3  value3
    1   字段4  value4
    1   字段5  value5
    .....T-SQL:
    select * 
     from 表 As a
       Inner Join 表擴展信息 As b On b.源表ID=a.ID 
    where b.數據 like @keyWord這裡顯示數據個效果與樓主的效果可能不同,需要進行行列轉換。