여러 값과 같은 MySQL
이 MySQL 쿼리가 있습니다.
이 내용의 데이터베이스 필드가 있습니다
sports,shopping,pool,pc,games
shopping,pool,pc,games
sports,pub,swimming, pool, pc, games
왜 쿼리와 같은 기능이 작동하지 않습니까? 스포츠 나 펍 또는 둘 다가있는 필드가 필요합니까?
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
이 (a,b,c)
목록은에서만 작동합니다 in
. 의 경우 다음 like
을 사용해야합니다 or
.
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
더 빠른 방법 :
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
이것입니다 :
WHERE interests REGEXP 'sports|pub'
이 솔루션을 여기에서 찾았습니다 : http://forums.mysql.com/read.php?10,392332,392950#msg-392950
REGEXP에 대한 자세한 내용은 여기 ( http://www.tutorialspoint.com/mysql/mysql-regexps.htm)를 참조 하십시오.
REGEXP를 사용해보십시오. 다음과 같이 시도하십시오.
SELECT * FROM table WHERE interests REGEXP 'sports|pub'
사용할 수도 있습니다 RLIKE
.
예를 들면 다음과 같습니다.
SELECT * FROM TABLE_NAME WHERE COLNAME RLIKE 'REGEX1|REGEX2|REGEX3'
귀하의 검색어는 SELECT * FROM `table` WHERE find_in_set(interests, "sports,pub")>0
내가 이해하는 것은 테이블의 한 필드에 관심사를 저장한다는 것입니다. 이것은 오해입니다. 확실하게 "관심"테이블이 있어야합니다.
AND
매개 변수 뒤에이 함수를 사용하는 경우 괄호를 사용하는 것을 잊지 마십시오
이처럼 :
WHERE id=123 and(interests LIKE '%sports%' OR interests LIKE '%pub%')
@Alexis Dufrenoy가 제안한 것처럼 쿼리는 다음과 같습니다.
SELECT * FROM `table` WHERE find_in_set('sports', interests)>0 OR find_in_set('pub', interests)>0
매뉴얼의 추가 정보 .
더 많은 작업 예 :
SELECT COUNT(email) as count FROM table1 t1
JOIN (
SELECT company_domains as emailext FROM table2 WHERE company = 'DELL'
) t2
ON t1.email LIKE CONCAT('%', emailext) WHERE t1.event='PC Global Conference";
이메일 확장이 여러 회사 도메인과 동일한 경우 필터를 사용하여 이벤트에서 참가자 수를 계산했습니다.
또는 단어의 시작 부분 만 일치시켜야하는 경우 :
WHERE interests LIKE 'sports%' OR interests LIKE 'pub%'
정규 표현식 캐럿 일치를 사용할 수 있습니다.
WHERE interests REGEXP '^sports|^pub'
https://www.regular-expressions.info/anchors.html
참고 URL : https://stackoverflow.com/questions/4172195/mysql-like-multiple-values
'IT' 카테고리의 다른 글
배쉬 : 주어진 상대 경로를 검색 (0) | 2020.07.03 |
---|---|
월말 계산 (0) | 2020.07.03 |
mongo-서버 127.0.0.1:27017에 연결할 수 없습니다 (0) | 2020.07.03 |
더 작은 RatingBar를 만드는 방법? (0) | 2020.07.03 |
최대 절전 모드 주석-필드 또는 속성 액세스 중 어떤 것이 더 좋습니까? (0) | 2020.07.03 |