MySQL,连接两列

Posted

技术标签:

【中文标题】MySQL,连接两列【英文标题】:MySQL, Concatenate two columns 【发布时间】:2012-05-07 22:42:28 【问题描述】:

mysql 表中有两列:SUBJECTYEAR

我想生成一个字母数字唯一编号,用于保存来自 SUBJECT 和 YEAR 的连接数据。

我该怎么做?是否可以使用像+ 这样的简单运算符?

【问题讨论】:

【参考方案1】:

您可以像这样使用CONCAT 函数:

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

更新:

要获得该结果,您可以尝试以下操作:

SET @rn := 0;

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

【讨论】:

您的第一个答案,SELECT CONCACT(SUBJECT, ' ', YEAR) 真的帮了我大忙。 +1 当要连接的字段上的任何行为空时,结果为空。该问题的解决方案是什么? @TSR 好问题!我为你找到了答案。如果其中一个字段恰好为空,则需要使用 MySQL IFNULL 操作。所以上面会像: SELECT CONCAT(IFNULL(SUBJECT,''),'-',IFNULL(YEAR,''),'-',LPAD(@rn := @rn+1,3, '0')) FROM table【参考方案2】:

您可以为此使用 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 

然后这是输出

【讨论】:

不错。仅供参考,这里使用的 CONCAT 是 MySQL 内置函数,而不是 php 函数。【参考方案3】:

在 php 中,我们有两个选项来连接表列。

使用查询的第一个选项

在查询中,CONCAT关键字用于连接两列

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

使用符号 (.) 的第二个选项

从数据库表中取出数据后,将值分配给变量,然后使用( . )符号并将值连接起来

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

我们将使用空格、逗号、字母、数字等代替下划线(_)

【讨论】:

【参考方案4】:

在查询中,CONCAT_WS() 函数。

此函数不仅添加多个字符串值,而且使它们成为单个字符串值。它还允许您定义分隔符(“”、“”、“、”-“、”_“等)。

语法——

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

例子

SELECT 
topic, 
CONCAT_WS( " ", subject, year ) AS subject_year 
FROM table

【讨论】:

【参考方案5】:
$crud->set_relation('id','students','first_name last_name');
$crud->display_as('student_id','Students Name');

【讨论】:

以上是关于MySQL,连接两列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2019 的 Datagrid 视图中连接 MySQL DataTable 中的两列?

MySql数据库与JDBC编程三

java代码实现连接mysql数据库,并取得表shijian中id为123的time值 说明 表shijian 有两列 id,time

如何在不使用 CONCAT 操作的情况下连接两列 RDBMS 字段[重复]

不能同时约束连接表列

Mysql合并两列数据