xjs*_*iya 8 mysql string function
我有一个包含以下数据的表:
reservno || icode || location
00004 || 00021 || Bohol - Cebu
00004 || 00022 || Cebu - Manila
00004 || 00014 || Manila - Bohol
Run Code Online (Sandbox Code Playgroud)
我使用此查询来检索位置的连接值.
SELECT GROUP_CONCAT(location) from location_list where reservno='00004';
Run Code Online (Sandbox Code Playgroud)
查询结果如下所示:
GROUP_CONCAT(location)
Bohol - Cebu,Cebu - Manila,Manila - Bohol
Run Code Online (Sandbox Code Playgroud)
但我想要做的是查询看起来像这样:Bohol - Cebu - Manila - Bohol
.我想合并这样的结果.我怎样才能做到这一点?我对MySQL字符串函数并不熟悉,所以我需要一些关于如何使其工作的想法.任何帮助将不胜感激.非常感谢!
你需要SEPARATOR
在GROUP_CONCAT
函数中使用:
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';
Run Code Online (Sandbox Code Playgroud)
将多个值存储在同一列中不是一个好习惯,更好的方法是:
reservno || icode || location_from || location_to
00004 || 00021 || Bohol || Cebu
00004 || 00022 || Cebu || Manila
00004 || 00014 || Manila || Bohol
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1357 次 |
最近记录: |