每行有三个字段,我想将它们串联起来,按升序排序:
select * concat(field1, field2, field3) AS result
from tbl
我的数据是:
field1, field2, field3
7 2 9
4 7 8
6 3 2
预期结果是:
field1, field2, field3 result
7 2 9 279
4 7 8 478
6 3 2 236
我该怎么做?
6条答案
按热度按时间vs91vp4v1#
您可以使用mysql的concat函数:
gzjq41n42#
你可以试试
GROUP_CONCAT
接近。它可以扩展到任意数量的列:输出:
13z8s7eq3#
一个更优雅的解决方案是从本地人那里获益
json_extract
函数根据值的键按升序提取值。使用
json_object
函数,并对键和值使用相同的字段使用按所需顺序提取值
json_extract
更换[
,,
以及]
有空位假设
f1 = 5, f2 = 4 and f3 = 1
,你得到[1,4,5]
现在您可以使用replace characters替换不需要的字符kb5ga3dv4#
请试试这个解决方案,尽管我还没有测试过。你可以通过做一些小的修补来达到你想要的。任何改进,请在评论中提及。
uurity8g5#
假设您希望forth列按field2、field1、field3的顺序作为字符串串联
尝试:
hlswsv356#
使用
LEAST
,GREATEST
技术上起作用