특정 주소찾기 SQL like or 배열형식 속도비교 0 1 1,219

by dbdb [2019.07.03 14:09:36]


안녕하세요.

주소에 의왕이 들어가있으면 check를 print하는 쿼리인데,

like 문을 덕지덕지 붙이는게 좋을지(라인수는 짧음)

배열형식으로 array를 만들어서 체크하는게 성능이 좋은지 알수있을까요?

1) like

DECLARE @juso1 varchar(100)
SET @juso1 =  '경기도 의왕'

IF @juso1 like '%수원%' or @juso1 like '%의왕%' or  @juso1 like '%군포%' or  @juso1 like '%하남%' or  @juso1 like '%성남%'
 print 'check'

 

2) strArray 변수 ,잘라서 사용(MSSQL 기준 배열 흉내)

DECLARE @juso1 varchar(100)
SET @juso1 =  '경기도 의왕'

     DECLARE @strArray nvarchar(128) 
     SET @strArray = '수원,의왕,군포,하남,성남'
      WHILE ChARINDEX(',', @strArray) <> 0
      BEGIN
       -- 할 일
       IF @juso1 like '%' + SUBSTRING( @strArray, 1, CHARINDEX(',', @strArray) - 1 ) + '%'
       BEGIN
        print 'check'
       END
       

       SET @strArray = SUBSTRING( @strArray, CHARINDEX(',', @strArray) + 1, LEN(@strArray) )
       
        IF CHARINDEX( ',', @strArray ) = 0
        BEGIN
        -- 마지막 할 일
        IF @juso1 like '%' + SUBSTRING( @strArray, 1, LEN(@strArray) ) + '%'
        BEGIN
         print 'check'
        END
       END
      END 

 

by jkson [2019.07.03 16:13:08]

동물적 육감으로 1이 빠르지 않을까 추측해봅니다ㅋ 직접 테스트해보시는 것도 나쁘지 않겠네요^^;

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입