>  기사  >  데이터 베이스  >  Pure MySQL을 사용하여 열에서 세미콜론으로 구분된 값을 사용하여 테이블을 조인할 수 있습니까?

Pure MySQL을 사용하여 열에서 세미콜론으로 구분된 값을 사용하여 테이블을 조인할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-01 10:27:02826검색

Can I Join Tables with Semi-colon Separated Values in a Column Using Pure MySQL?

이 문제를 순수 mysql로 ​​해결할 수 있나요? (열의 ';' 구분 값에 결합)

질문:

두 개의 테이블이 주어지면 사용자 테이블 t1에는 ';'을 포함하는 리소스 열이 있습니다. ' 분리된 리소스 ID와 ID 및 데이터가 있는 리소스 테이블 t2를 결합하여 사용자 및 리소스 데이터가 포함된 테이블을 얻기 위해 t1과 t2를 결합하려고 합니다.

문제:

외부 언어를 사용하여 결과를 조작할 수 없으며 user_resources 테이블은 비정규화됩니다.

해결책:

1부터 1까지의 숫자가 포함된 정수 시리즈라는 테이블을 만듭니다. 특정 한도. 리소스 열을 배열로 처리하는 COUNT_IN_SET 및 VALUE_IN_SET 함수를 사용하여 테이블을 정규화합니다. 그런 다음 Integerseries와 결합하여 개별 리소스 ID를 추출합니다.

<code class="sql">SELECT user_resource.user, 
       resource.data

FROM user_resource 
     JOIN integerseries AS isequence 
       ON isequence.id <= COUNT_IN_SET(user_resource.resources, ';') 

     JOIN resource 
       ON resource.id = VALUE_IN_SET(user_resource.resources, ';', isequence.id)      
ORDER BY
       user_resource.user,  resource.data</code>

위 내용은 Pure MySQL을 사용하여 열에서 세미콜론으로 구분된 값을 사용하여 테이블을 조인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.