2016-08-18 1 views
2

현재 MySql 와일드 카드는 LIKE '%A%B%'입니다. 이 포함 된 값을 반환 할 수있는 B.와일드 카드로 된 SQL OR 문

사람이 내가 사전에 또는 B.

감사 중 하나를 포함하는 값을 반환하는 와일드 카드 문을 변경할 수있는 방법을 제안 할 수 있습니다.

+3

당신이 'LIKE'% % '또는 기둥 이름 LIKE'%의 B의 %'과 같은 작업을 수행 할 수 있습니다. 정확하지 않을 수도 있습니다. 그러나 그것을 시도해보십시오 – BNN

+0

답변 주셔서 감사합니다. 그러나 와일드 카드를 변경하여 결과를 얻는 다른 방법이 있습니까? @stack – User420

+1

아니요, 적어도'like '연산자가 없습니다. 'rlike' 연산자로 할 수 있습니다. – Shadow

답변

2

당신은 더 많은 정보를 들어

select * from tablename where (column_name like '%test%' or same_column_name like '%test1%' or 
      same_column_name like '%test2%' or same_column_name like '%test3%') 

는 아래의 링크를 보라 아래처럼에 괄호 OR 조건 내에서 원하는만큼 like 연산자를 추가 할 수 있습니다. 당신에게 도움이

SQL Server using wildcard within IN

희망

+0

실제로. 이것은 효과가있다. 그러나 주요 성능 단점이 있습니다. REGEXP와 LIKE '% something %'는 모두 천천히 느립니다. 그래서 그들을 결합하면 상황이 악화됩니다. – e4c5

+0

전적으로 이것에 동의합니다. 그러나 이것 이외에, 나는 OP를 도울 어떤 방법도 찾지 못했습니다. 일부 고령자 일 수도 있고 – BNN

+0

걱정을하지 않을 수도 있습니다. 나는 이것이 나쁜 대답이라고 생각하지 않았다. +1 내게 – e4c5

2

당신은 정규 표현식으로이 글을 쓰는에 다른 많은 방법이있다 REGEXP

select * from Table1 where some_column REGEXP '[AB]' 

사용할 수 있습니다, 위의 기본적

는 일반적으로 당신이 정규 표현식을 사용하지 않도록하려면 A 또는 B

을 포함하는 의미 '% something'은 (는) 색인을 사용하지 않기 때문에 좋아요. 따라서 대형 테이블의 경우 이러한 작업을 사용할 수 없게됩니다. 이런 종류의 검색을 원할 때는 "최고의 데이터베이스 디자인을 얻었습니까?", "대신 전체 텍스트 검색을 사용할 수 있습니까?"라는 질문을하지 않는 것이 가장 좋습니다.