MySQL,连接两列
Posted
技术标签:
【中文标题】MySQL,连接两列【英文标题】:MySQL, Concatenate two columns 【发布时间】:2012-05-07 22:42:28 【问题描述】:mysql 表中有两列:SUBJECT
和 YEAR
。
我想生成一个字母数字唯一编号,用于保存来自 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 中的两列?
java代码实现连接mysql数据库,并取得表shijian中id为123的time值 说明 表shijian 有两列 id,time