gpt4 book ai didi

mysql - 在 SELECT 命令后将字符串附加到记录的指定列

转载 作者:行者123 更新时间:2023-11-29 11:45:36 25 4
gpt4 key购买 nike

我有一个 sql 命令,它返回重复项的列表(在我的 MySQL 数据库中),只有两列,一列用于重复值,一列用于重复记录的计数。

SELECT title, COUNT(*) c FROM posts GROUP BY title HAVING c > 1

title c
---------------
title_1 2
title_a 2
title_b 2

我假设一个结果如下所示:(它是一个数组数组)

objId   title
------------
1 title_1
2 title_1

所以我的目标是将一个字符串附加到重复记录数组中结果的第二项,如下所示:

objId   title
------------
1 title_1
2 title_1_2

我找到了更新记录的解决方案,但我不知道如何循环遍历第一个 sql 命令后得到的结果,因此我无法在实践中使用它。

UPDATE posts SET title = CONCAT(IFNULL(title,''), ' 2');

在伪代码中,我会执行类似的操作来为标题创建新字符串:

result[1].title = (oldTitleString," 2");

save result[1];

我是 sql 新手,并不真正了解可能性,也许会有一种更简单的方法来做到这一点,所以如果有人可以告诉我如何从重复的记录中获取第二条记录,我将非常感激item 并用另一个字符串扩展它。

最佳答案

我的解决方案:

SELECT `objId`,`title`, 
(SELECT CONCAT(`title`, '_', `po`.`objId`)
FROM `posts` `p`
WHERE `title` = `po`.`title` && `p`.`objId` < `po`.`objId` LIMIT 1) AS `title_custom`
FROM `posts` `po`

关于mysql - 在 SELECT 命令后将字符串附加到记录的指定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35002247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com