MySQL表中有两列: SUBJECT
和 YEAR
。
我想生成一个包含 SUBJECT 和 YEAR 连接数据的字母数字唯一编号。
如何实现呢?是否可以使用简单的操作符,如+
?
CONCAT
函数:SELECT CONCAT(`SUBJECT`, ' ', `YEAR`) FROM `table`
更新:
为了获得该结果,您可以尝试这个:
SET @rn := 0;
SELECT CONCAT(`SUBJECT`,'-',`YEAR`,'-',LPAD(@rn := @rn+1,3,'0'))
FROM `table`
在php中,我们有两种选项来连接表格列。
第一种选项使用查询
在查询中,使用CONCAT关键词来连接两列。
SELECT CONCAT(`SUBJECT`,'_', `YEAR`) AS subject_year FROM `table_name`;
使用符号 ( . ) 的第二种选项
从数据库表中提取数据后,将值赋给变量,然后使用( . )符号连接这些值。
$subject = $row['SUBJECT'];
$year = $row['YEAR'];
$subject_year = $subject . "_" . $year;
我们将使用空格、逗号、字母、数字等,而不是下划线(_)。
在查询中,CONCAT_WS()
函数。
该函数不仅可以将多个字符串值添加并使它们成为单个字符串值。它还允许您定义分隔符(" ",","," - "," _ "等)。
语法 -
CONCAT_WS( SEPERATOR, column1, column2, ... )
示例
SELECT
topic,
CONCAT_WS( " ", subject, year ) AS subject_year
FROM table
我有两列:prenom和nom,所以为了将它们合并成一个名为chauffeur_sortant的列,我使用了以下脚本:
SELECT date as depart, retour, duree_mission, duree_utilisation, difference, observation, concat( tb_chaufeur_sortant.prenom, ' ', tb_chaufeur_sortant.nom) as chauffeur_sortant, concat(tb_chaufeur_entrant.prenom, ' ', tb_chaufeur_entrant.nom) as chauffeur_entrant
FROM tb_passation
INNER JOIN tb_vehicule
ON tb_vehicule.id = tb_passation.id_vehicule
INNER JOIN tb_chaufeur_sortant
ON tb_chaufeur_sortant.id = tb_passation.id_sortant
INNER JOIN tb_chaufeur_entrant
ON tb_chaufeur_entrant.id = tb_passation.id_entrant WHERE tb_vehicule.id = '';
$crud->set_relation('id','students','{first_name} {last_name}');
$crud->display_as('student_id','Students Name');
SUBJECT
,''),'-',IFNULL(YEAR
,''),'-',LPAD(@rn := @rn+1,3,'0')) FROMtable
。 - Logan