gpt4 book ai didi

mysql - 如何使用 ORDER BY/GROUP BY 忽略某些表达式?

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

我需要将 X 列组合在一起,忽略括号内的内容

      X

aaabbbccc[0]aaabbbccc
aaabbbccc[15]aaabbbccc
aaabbbccc[11]eeefffggg
aaabbbccc[10]eeefffggg
aaabbbccc[17]aaabbbccc
aaabbbccc[19]eeefffggg

作为,

      X

aaabbbccc[0]aaabbbccc
aaabbbccc[15]aaabbbccc
aaabbbccc[17]aaabbbccc
aaabbbccc[10]eeefffggg
aaabbbccc[11]eeefffggg
aaabbbccc[19]eeefffggg

但是,如果我使用 ORDER BY 或 GROUP BY,我总是得到如下结果。

aaabbbccc[0]aaabbbccc
aaabbbccc[10]eeefffggg
aaabbbccc[11]eeefffggg
aaabbbccc[15]aaabbbccc
aaabbbccc[17]aaabbbccc
aaabbbccc[19]eeefffggg

任何人都可以建议我如何克服这种情况。

谢谢。

最佳答案

您可以对派生值进行分组/排序,但这会妨碍使用索引,因此在大型表上性能将非常糟糕:

SELECT ...
...
GROUP BY CONCAT(
LEFT(yourfield, LOCATE('[', yourfield)),
RIGHT(yourfield, LENGTH(yourfield) - LOCATE(']', yourfield))
);

注意:只是我的想法,所以这很可能行不通,但应该为您提供工作的基础。假设它有效,它会将字符串分成两部分 - 在 [ 之前和 ] 之后,将这两部分放在一起,然后对它们进行分组,从而有效地消除[...] 部分。

如果您定期执行此类操作,那么我建议将此字段拆分为两个单独的字段,这样您就可以拥有专用/永久的“之前”和“之后”字段,可以更轻松地对其进行索引和分组/排序这个丑陋的怪物。

关于mysql - 如何使用 ORDER BY/GROUP BY 忽略某些表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784052/

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