gpt4 book ai didi

MySQL 字符串函数

转载 作者:可可西里 更新时间:2023-11-01 06:32:54 41 4
gpt4 key购买 nike

我有一个包含以下数据的表格:

reservno || icode || location
00004 || 00021 || Bohol - Cebu
00004 || 00022 || Cebu - Manila
00004 || 00014 || Manila - Bohol

我使用此查询来检索位置的串联值。

SELECT GROUP_CONCAT(location) from location_list where reservno='00004';

查询结果如下:

GROUP_CONCAT(location)
Bohol - Cebu,Cebu - Manila,Manila - Bohol

但我想要做的是让查询看起来像这样:Bohol - Cebu - Manila - Bohol。我想合并这样的结果。我怎样才能做到这一点?我不太熟悉 MySQL 字符串函数,所以我需要一些关于如何使它工作的想法。任何帮助将不胜感激。非常感谢!

最佳答案

您需要在 GROUP_CONCAT 函数中使用 SEPARATOR:

SELECT  GROUP_CONCAT(IF((@var_ctr := @var_ctr + 1) = @cnt, 
location,
SUBSTRING_INDEX(location,' - ', 1)
)
ORDER BY loc_id ASC
SEPARATOR ' - ') AS locations

FROM location_list,
(SELECT @cnt := COUNT(1), @var_ctr := 0
FROM location_list
WHERE reservno='00004'
) dummy
WHERE reservno='00004';

例子:SQLFIDDLE

在同一列中存储多个值不是一个好的做法,更好的方法可能是:

reservno || icode || location_from || location_to
00004 || 00021 || Bohol || Cebu
00004 || 00022 || Cebu || Manila
00004 || 00014 || Manila || Bohol

关于MySQL 字符串函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12171581/

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