본문 바로가기
MySql

MySQL 한 열의 값에 다른 값이 포함되어 있는지 확인

by 베이스 공부 2021. 1. 28.
반응형

Java 패키지 이름이있는 테이블이 있습니다.

|id|pkg|
|1 |some.long.package.path|
|2 |com.admob.bla|

그리고 알려진 광고 프레임 워크의 부분 패키지 이름을 포함하는 테이블.

|id|path_fragment|
|1 |.admob |

package 값에 ad frameworks.path 조각이 포함 된 패키지를 검색하려면 어떻게해야합니까?

부분 문자열 검사를 찾을 수 없습니다. 내가 찾은 것은 사람들이 like를 사용하여 문자열 리터럴과 비교하지만 열을 비교하지는 않습니다.

참고 : MySQL을 사용하고 있습니다.

 

해결 방법

 

좋아요와 내부 조인을 할 수 있다고 생각합니다.

select p.id, p.pkg
from package p
inner join ad_frameworks adf on p.pkg like CONCAT('%', adf.path_fragment, '%')
--group by p.id, p.pkg

또는 당신이 지적했듯이

select * 
from package p
inner join ad_frameworks adf on LOCATE(adf.fragment, p.pkg) > 0

또는

select * 
from package p
inner join ad_frameworks adf on INSTR( p.pkg,adf.fragment) > 0

또는

select * 
from package p
inner join ad_frameworks adf on POSITION(adf.fragment IN p.pkg) > 0

또는

select * 
from package p
inner join ad_frameworks adf on REPLACE(p.pkg, adf.fragemnt, '') <> p.pkg

글쎄, 당신은 선택의 여지가 거의 없습니다;)


 

참조 페이지 https://stackoverflow.com/questions/12424737

 

 

반응형

댓글