MySQL,连接两列

Cha*_*wal 75 php mysql sql

MySQL表中有两列:SUBJECTYEAR.

我想生成一个字母数字唯一的数字,它保存来自SUBJECT和YEAR的连接数据.

我怎样才能做到这一点?是否可以使用简单的运算符+

Mis*_*cha 169

你可以使用这样的CONCAT功能:

SELECT CONCAT(`SUBJECT`, ' ', `YEAR`) FROM `table`
Run Code Online (Sandbox Code Playgroud)

更新:

要获得该结果,您可以尝试这样做:

SET @rn := 0;

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

  • 你的第一个答案“SELECT CONCACT(SUBJECT, ' ', YEAR)”确实帮助了我。+1 (3认同)
  • 当要连接的字段上的任何行为空时,结果为null.这个问题的解决方案是什么? (3认同)
  • @TSR 好问题!我为你找到了答案。如果其中一个字段恰好为空,则需要使用 MySQL IFNULL 操作。所以上面应该是: SELECT CONCAT(IFNULL(`SUBJECT`,''),'-',IFNULL(`YEAR`,''),'-',LPAD(@rn := @rn+1,3, '0')) 来自`表` (2认同)

Sha*_*lam 7

你可以使用内置在CONCAT()中的PHP.

SELECT CONCAT(`name`, ' ', `email`) as password_email FROM `table`;
Run Code Online (Sandbox Code Playgroud)

根据您的要求更改归档名称

然后结果是

在此输入图像描述

如果你想使用相同的其他字段连续相同的字段

SELECT filed1 as category,filed2 as item, GROUP_CONCAT(CAST(filed2 as CHAR)) as item_name FROM `table` group by filed1 
Run Code Online (Sandbox Code Playgroud)

然后这是输出 在此输入图像描述

  • 好的。仅供参考,这里使用的 CONCAT 是 MySQL 内置函数,而不是 php 函数。 (3认同)

Vas*_*nth 5

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

使用查询的首选

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

SELECT CONCAT(`SUBJECT`,'_', `YEAR`) AS subject_year FROM `table_name`;
Run Code Online (Sandbox Code Playgroud)

第二种选择使用符号(。)

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

$subject = $row['SUBJECT'];
$year = $row['YEAR'];
$subject_year = $subject . "_" . $year;
Run Code Online (Sandbox Code Playgroud)

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