name值是用逗號拼接成的

發布 sql 39


請教下sql能不能實現這樣的查詢?
    我表里有一個關鍵字段 name,name值是用逗號拼接成的。
    查詢name是否包含數組元素的一個,包含任意一個就返回true。
    比如
    name值是用逗號拼接成的
    給一個數組[2,3],name的值都包含2或者3,返回全部
    給一個數組[4,5],只有最后一條滿足,就返回最后一條
    注:不準用循環,只允許查詢后面加條件

你看這樣能不能滿足你
    1.先創建一個字符串分割函數 參考 https://blog.csdn.net/Heandme/article/details/83144361
    

        
  1. 你需要吧你的數組拼接成 類似這種的字符串 '4,5'
        SQL如下 在 F_Split( ’拼接好的字符串‘ ,‘分隔符’ )
        SELECT * FROM tba WHERE
        EXISTS( SELECT COL FROM F_Split('4,5',',') WHERE CHARINDEX(COL,name)<>0 )

  2.     

select * from table where (','+name+',') like '%,2,%' or (','+name+',') like '%,3,%'
    select * from table where (','+name+',') like '%,4,%' or (','+name+',') like '%,5,%'
    看看這個語句是否能夠滿足要求
    至于具體的sql條件,動態的根據條件生成即可
 
美国扑克50手返水