2016-10-12 8 views
-2

Driver || Helper || Garden과 같은 내용이 포함 된 열이있는 테이블이 있습니다. 이 테이블을 새로운 시스템으로 내보내고 싶습니다. 여기서 각 사용자 스킬별로 다른 열이 있습니다 (꼭 그래야 함).하나의 열과 여러 개의 LIKE가있는 SQL 쿼리

질문 : 멋진 SQL 내보내기에서 어떻게 이런 종류의 정보를 얻을 수 있습니까?

SELECT user_id, driver, helper, garden FROM `ujc72_comprofiler` WHERE cb_erfahrungen LIKE "%Driver%" 

특정 기술을 가진 사용자를 제공하지만 내 내보내기는 한 사용자에 대해 여러 개의 열을 원합니다.

+0

FYI : _ "각 사용자에 대해 다른 열이있는 경우"_이 (가) _이 (가) _이 (가) "_이어야합니다. 가장 중요한 것은 약 2 개의 열이있는 별개의 테이블입니다. 하나는 사용자를 참조하고 다른 하나는 사용자가 가지고있는 기술을 나열 (또는 참조)하는 것입니다. 이 user_skills 테이블에 _0 ~ many_ 레코드가있는 각 사용자 레코드. ... 별도의 열은 여전히 ​​분명히 지금 가지고있는 것보다 한 단계 위입니다. – Uueerdo

+0

이것은 굉장히 울리는 울리는 스키마입니다. – Drew

+0

ujc72_comprofiler의 구조는 무엇입니까? cb_erfahrungen은 어디에 있습니까 ?? –

답변

1

문자열을 분할해야합니다. 그래서 Driver | Helper | Garden을 Driver, Helper 및 Garder 컬럼으로 분리합니다.

이 함수는 mysql에 없습니다. 당신은 그것을 당신 자신의 것으로 만들어야 만합니다. 이 링크를 확인 : 또한 https://blog.fedecarg.com/2009/02/22/mysql-split-string-function/


을, 당신은 SUBSTRING_INDEX 기능을 작동 할 수 있습니다

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); 
     -> 'www.mysql' 
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2); 
     -> 'mysql.com' 
0

그냥이 검색어로 사용하십시오 : select column_name, column_name, column_name from table_name where column_name like '%driver%'. 나는 이것이 당신이 찾고있는 것이라고 생각합니다.

0

당신은 SQL이 어려운 찾는를 열 선택 목록이 시간에 고정해야하기 때문에 쿼리를 준비하십시오. 결과 집합의 열 수를 데이터에서 찾은 패턴에 맞게 자동으로 확장 할 수있는 SQL 기능은 없습니다.

그래서 SQL로 이것을 시도하지 마십시오. 간단한 SQL 쿼리를 실행하는 스크립트를 작성한 다음 스크립트 코드에서 문자열을 분리하십시오.

거의 모든 언어에는 문자열을 쉽게 배열로 분할하는 기능이 있습니다.

작업에 적합한 도구를 사용하십시오.

관련 문제