'LIKE(%this%)' 또는 '%this%' 및 'something=something'이 작동하지 않습니다.
문자열을 검색하여 여러 패턴을 검색하려는 선택 쿼리가 있습니다.
LIKE ('%this%' or '%that%' ) and something=else
0의 결과를 반환한다.
하지만
LIKE '%this%' and something=else
결과를 반환하고
LIKE '%that%' and something=else
결과를 반환하다
모든 결과를 하나의 쿼리에 담을 수 있습니까?문자열이 둘 다 일치할 경우 어떻게 처리합니까?
괜찮으시다면 좋겠지만 SQL에서는 이 구문을 사용할 수 없습니다.
이것을 시험해 보세요.
(column1 LIKE '%this%' OR column1 LIKE '%that%') AND something = else
브래킷 사용에 유의하십시오!이 근처에 있어야 합니다.OR
표현.
괄호가 없으면 다음과 같이 해석됩니다.A OR (B AND C)
기대했던 결과를 얻을 수 없을 겁니다
사용하는 대신LIKE
,사용하다REGEXP
. 예:
SELECT * WHERE value REGEXP 'THIS|THAT'
mysql> SELECT 'pi' REGEXP 'pi|apa'; -> 1
mysql> SELECT 'axe' REGEXP 'pi|apa'; -> 0
mysql> SELECT 'apa' REGEXP 'pi|apa'; -> 1
mysql> SELECT 'apa' REGEXP '^(pi|apa)$'; -> 1
mysql> SELECT 'pi' REGEXP '^(pi|apa)$'; -> 1
mysql> SELECT 'pix' REGEXP '^(pi|apa)$'; -> 0
참조: http://dev.mysql.com/doc/refman/5.1/en/regexp.html
다음과 같은 방법을 시도해 보십시오.
WHERE (column LIKE '%this%' OR column LIKE '%that%') AND something = else
를 해방하다LIKE
절은 두 개의 개별적인 진술로 구분된다.
(fieldname1 LIKE '%this%' or fieldname1 LIKE '%that%' ) and something=else
당신은 그것을 나누는 것을 싫어하는 것이 있습니까?
...FROM <blah>
WHERE
(fieldA LIKE '%THIS%' OR fieldA LIKE '%THAT%')
AND something = else
시도해 보셨습니까?
(column LIKE '%this%' and something=else) or (column LIKE '%that%' and something=else)
다소 오래된 질문인 것은 알지만 여전히 효율적인 솔루션을 찾고 있기 때문에 대신 FULLTEXT 인덱스를 사용해야 합니다(MySQL 5.6.4에서 사용 가능).
3천5백만 개 이상의 레코드가 있는 테이블에서 3배 이상 조회like
여기서 블록은 최대 2.5초 걸렸지만 이러한 필드에 인덱스를 추가하고 내부에서 부울 모드를 사용한 후match ... against ...
0.05초밖에 걸리지 않았다.
언급URL : https://stackoverflow.com/questions/6526949/like-this-or-that-and-something-else-not-working
'source' 카테고리의 다른 글
Larabel에서 신규 사용자 등록을 해제하는 방법 (0) | 2022.10.20 |
---|---|
len() 함수의 비용 (0) | 2022.10.20 |
Python에서 커스텀 메시지와 동일한 예외를 발생시키는 방법은 무엇입니까? (0) | 2022.10.20 |
Java 속성 파일에 여러 줄의 코멘트를 추가할 수 있습니까? (0) | 2022.10.19 |
단일 인스턴스 Java 애플리케이션을 구현하려면 어떻게 해야 합니까? (0) | 2022.10.19 |