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

MySQL 表中有两列:SUBJECTYEAR

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

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

【问题讨论】:

    标签: php mysql sql


    【解决方案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');
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-09
          • 1970-01-01
          相关资源
          最近更新 更多