MySQL, concatenar duas colunas

86

Existem duas colunas em uma tabela MySQL: SUBJECTe YEAR.

Desejo gerar um número alfanumérico exclusivo que contém os dados concatenados de SUBJECT e YEAR.

Como posso fazer isso? É possível usar um operador simples como +?

Chandra Sekhar Biswal
fonte

Respostas:

184

Você pode usar a CONCATfunção desta forma:

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

Atualizar:

Para obter esse resultado, você pode tentar o seguinte:

SET @rn := 0;

SELECT CONCAT(`SUBJECT`,'-',`YEAR`,'-',LPAD(@rn := @rn+1,3,'0'))
FROM `table`
Mischa
fonte
1
Sua primeira resposta SELECT CONCACT(SUBJECT, ' ', YEAR)realmente me ajudou. +1
FastTrack,
4
O resultado é nulo quando qualquer linha está vazia nos campos a serem concatados. Qual é a solução para esse problema?
TSR
2
@TSR Boa pergunta! Eu encontrei a resposta para você. Se um dos campos for nulo, você precisará usar a op IFNULL do MySQL. Portanto, acima seria como: SELECT CONCAT (IFNULL ( SUBJECT, ''), '-', IFNULL ( YEAR, ''), '-', LPAD (@rn: = @ rn + 1,3, '0')) FROMtable
Logan,
17

Você pode usar o php embutido em CONCAT () para isso.

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

mude o nome do arquivo conforme sua necessidade

então o resultado é

insira a descrição da imagem aqui

e se você quiser concatenar o mesmo campo usando outro campo que então

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

então esta é a saída insira a descrição da imagem aqui

Shafiqul Islam
fonte
1
Agradável. Apenas para sua informação, CONCAT usado aqui é uma função embutida do MySQL, não uma função php.
Yousaf Hassan
6

No php, temos duas opções para concatenar as colunas da tabela.

Primeira opção usando consulta

Na consulta, a palavra-chave CONCAT usada para concatenar duas colunas

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

Segunda opção usando o símbolo (.)

Depois de buscar os dados da tabela do banco de dados, atribua os valores à variável, usando o símbolo (.) E concatene os valores

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

Em vez de sublinhado (_), usaremos os espaços, vírgulas, letras, números ... etc.

Vasanth
fonte
0

Em consulta, CONCAT_WS()função.

Essa função não apenas adiciona vários valores de string como os torna um único valor de string. Também permite definir o separador (”“, ”,“, ”-“, ”_“, etc.).

Sintaxe -

CONCAT_WS( SEPERATOR, column1, column2, ... )

Exemplo

SELECT 
topic, 
CONCAT_WS( " ", subject, year ) AS subject_year 
FROM table
Faridul Khan
fonte
-1
$crud->set_relation('id','students','{first_name} {last_name}');
$crud->display_as('student_id','Students Name');
Saravanan
fonte