通过TEX输入字符和数据库中的记录比较,字符前后排列无关,总字符数和内容相等就可以
例:查找:10/12/23数据库中有:10/12/23  12/10/23   23/10/12    10/12/23/34
正确结果:数据库中前3条符合
该怎么办

解决方案 »

  1.   

    循环的读取纪录作判断好了~~
    strdb = "12/10/23"str = "10/12/23"arr = Split(str, "/")If UBound(Split(strdb, "/")) = UBound(arr) Then
        flag = True
        For i = 0 To UBound(arr)
            If InStr(strdb, arr(i)) <= 0 Then
                flag = False
                Exit For
            End If
        Next
    End If
    If flag = True Then Debug.Print strdb
      

  2.   

    SELECT * FROM yourtable WHERE Len(yourfield) = 8 AND yourfield Like '*10*' AND yourfield Like '*12*' AND yourfield Like '*23*'
      

  3.   

    网上抄了一个函数你看看,这是sqlserver2000的。
    CREATE FUNCTION f_splitSTR(
    @s   varchar(8000),   --待分拆的字符串
    @split varchar(10)     --数据分隔符
    )RETURNS @re TABLE(col varchar(100))
    AS
    BEGIN
        DECLARE @splitlen int
        SET @splitlen=LEN(@split+'a')-2
        WHILE CHARINDEX(@split,@s)>0
        BEGIN
            INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
            SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
        END
        INSERT @re VALUES(@s)
        RETURN
    END
      

  4.   

    strdb = "12/10/23" str = "10/12/23" arr = Split(str, "/") If UBound(Split(strdb, "/")) = UBound(arr) Then 
        flag = True 
        For i = 0 To UBound(arr) 
            If InStr(strdb, arr(i))  <= 0 Then 
                flag = False 
                Exit For 
            End If 
        Next 
    End If 
    If flag = True Then Debug.Print strdb 
      

  5.   

    学习.....我也想着用SPLIT....原来数据库本身就能处理了