MySQL, 두 열 연결


85

MySQL 테이블에는 두 개의 열이 있습니다. SUBJECTYEAR.

SUBJECT와 YEAR의 연결된 데이터를 보유하는 영숫자 고유 번호를 생성하고 싶습니다.

어떻게 할 수 있습니까? 다음과 같은 간단한 연산자를 사용할 수 +있습니까?

답변:


183

다음 CONCAT과 같은 기능을 사용할 수 있습니다 .

SELECT CONCAT(`SUBJECT`, ' ', `YEAR`) FROM `table`

최신 정보:

그 결과를 얻으려면 다음을 시도하십시오.

SET @rn := 0;

SELECT CONCAT(`SUBJECT`,'-',`YEAR`,'-',LPAD(@rn := @rn+1,3,'0'))
FROM `table`

1
당신의 첫 번째 대답은 SELECT CONCACT(SUBJECT, ' ', YEAR)정말 저를 도왔습니다. +1
FastTrack

4
연결할 필드에서 행이 비어 있으면 결과는 null입니다. 그 문제에 대한 해결책은 무엇입니까?
TSR

2
@TSR 좋은 질문! 당신을위한 답을 찾았습니다. 필드 중 하나가 null 인 경우 MySQL IFNULL 작업을 사용해야합니다. 따라서 위는 다음과 같습니다. SELECT CONCAT (IFNULL ( SUBJECT, ''), '-', IFNULL ( YEAR, ''), '-', LPAD (@rn : = @ rn + 1,3, '0')) FROMtable
Logan

17

이를 위해 CONCAT ()에 내장 된 php를 사용할 수 있습니다.

SELECT CONCAT(`name`, ' ', `email`) as password_email FROM `table`;

귀하의 요구 사항으로 파일 이름 변경

결과는

여기에 이미지 설명 입력

그리고 동일한 필드를 사용하여 동일한 필드를 연결하려면

SELECT filed1 as category,filed2 as item, GROUP_CONCAT(CAST(filed2 as CHAR)) as item_name FROM `table` group by filed1 

그러면 이것은 출력입니다 여기에 이미지 설명 입력


1
좋은. 참고로 여기에 사용 된 CONCAT은 PHP 함수가 아닌 MySQL 내장 함수입니다.
Yousaf Hassan

6

PHP에서는 테이블 열을 연결하는 두 가지 옵션이 있습니다.

쿼리를 사용하는 첫 번째 옵션

쿼리에서 두 열을 연결하는 데 사용되는 CONCAT 키워드

SELECT CONCAT(`SUBJECT`,'_', `YEAR`) AS subject_year FROM `table_name`;

기호 (.)를 사용하는 두 번째 옵션

데이터베이스 테이블에서 데이터를 가져온 후 변수에 값을 할당 한 다음 (.) 기호 를 사용 하여 값을 연결합니다.

$subject = $row['SUBJECT'];
$year = $row['YEAR'];
$subject_year = $subject . "_" . $year;

밑줄 (_) 대신 공백, 쉼표, 문자, 숫자 .. 등을 사용합니다.


-1
$crud->set_relation('id','students','{first_name} {last_name}');
$crud->display_as('student_id','Students Name');
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.