java - 合并同一个表中的两列并将结果保存到mysql中同一个表中的其他列中

标签 java mysql

我是这里的初学者,因此我需要您的帮助来修复我上一个项目的程序。 我想合并 frequent1xfrequent2x 两列,并将结果存储到 frequent2 列中。

我使用这个查询..

Insert into tvfrequent (no, frequent1, frequent1x, frequent2x, frequent2, frequent3, frequent4, frequent5, support)
SELECT no,
SUBSTRING_INDEX( unixdatetime , ' ', 1 ) AS frequent1,                   
(SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' ', 2 ),' ',-1) AS frequent1x) union (SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 2 ),' -1 ',-1) AS frequent2x) As frequent2,
SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 3 ),' -1 ',-1) AS frequent3,
SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 4 ),' -1 ',-1) AS frequent4,
SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 5 ),' -1 ',-1) AS frequent5,
SUBSTRING_INDEX( unixdatetime , ' -1 ', -1 ) AS support
FROM tspade

感谢任何帮助。

最佳答案

尝试以下查询:

Insert into tvfrequent (no, frequent1, frequent1x, frequent2x, frequent2, frequent3, frequent4, frequent5, support)
SELECT no,
SUBSTRING_INDEX( unixdatetime , ' ', 1 ) AS frequent1,                   
concat
      (
       SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' ', 2 ),' ',-1)
       ,
       " "
       ,
       SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 2 ),' -1 ',-1)      
      ) As frequent2,
SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 3 ),' -1 ',-1) AS frequent3,
SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 4 ),' -1 ',-1) AS frequent4,
SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 5 ),' -1 ',-1) AS frequent5,
SUBSTRING_INDEX( unixdatetime , ' -1 ', -1 ) AS support
FROM tspade;

替代方法:

Insert into tvfrequent (no, frequent1, frequent1x, frequent2x, frequent2, frequent3, frequent4, frequent5, support)
    SELECT no,
    SUBSTRING_INDEX( unixdatetime , ' ', 1 ) AS frequent1,                   
    (case
        when
           (SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' ', 2 ),' ',-1))
       =          
           (SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 2 ),' -1 ',-1))
        then
           (SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' ', 2 ),' ',-1))
        else
            (concat
                   (
                     SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' ', 2 ),' ',-1)
                       ,
                      " "
                       ,
                     SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 2 ),' -1 ',-1)      
                   )
           )           
    ) As frequent2,    
    SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 3 ),' -1 ',-1) AS frequent3,
    SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 4 ),' -1 ',-1) AS frequent4,
    SUBSTRING_INDEX(SUBSTRING_INDEX( unixdatetime , ' -1 ', 5 ),' -1 ',-1) AS frequent5,
    SUBSTRING_INDEX( unixdatetime , ' -1 ', -1 ) AS support
    FROM tspade;

关于java - 合并同一个表中的两列并将结果保存到mysql中同一个表中的其他列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47418354/

相关文章:

mysql - Passport Node (错误 : Failed to deserialize user out of session.)

Java/Kotlin 运行 Runtime.getRuntime().exec() 并带有可见的命令提示符

java - 从被调用方法内的函数返回

java - 如何找到接口(interface)方法的一个实现的用法

php - MySQL 检查数据库中的用户名和密码是否匹配

php - 如何通过多选来选择我保留用户的项目,并使用 laravel 5.8 中的另一个多选来更新这些相同的数据

mysql - Tomcat/hibernate 配置

mysql - 之前工作正常后,突然 'MySQL shutdown unexpectedly' 出现在 Xampp 中

java - Java中的无状态对象是什么?

java - 音频文件 - 操作给定字节帧的音量 - Java