【问题标题】:IN mysql function group_concat change separator dynamicallyIN mysql 函数 group_concat 动态更改分隔符
【发布时间】:2017-05-24 14:29:42
【问题描述】:

我想在 mysql 中为 group_concat() 函数使用分隔符。但我想动态更改分隔符。我的意思是分隔符值来自一个表,并且每一行都不同。

我找不到任何解决方案,请帮助我。

【问题讨论】:

  • 可能表明您的数据存在严重问题。为此,您需要动态 sql
  • 换句话说,我在参数中传递了分隔符值,然后如何使用,请帮忙..
  • 我得到了解决方案:我们可以在 ' ' 中使用任何分隔符,但最后替换为我们正在传递的那个。
  • @SaritaTewari,面临同样的问题。请您澄清一下您的解决方案吗?

标签: mysql group-concat separator


【解决方案1】:

终于有办法了。

假设我们有一些 MySQL 例程。我们需要 GROUP_CONCAT 一些特殊的值 SEPARATOR (默认是',')。但是SEPARATOR 不是静态的,它来自另一个表,例如。来自一些“设置”表。

DECLARE url_delimiter VARCHAR(255);

SELECT catalog_url_delimiter
INTO url_delimiter
FROM settings;

我们不能直接使用变量作为 SEPARATOR 参数:

-- doesn't work
SELECT GROUP_CONCAT(`some_table`.id SEPARATOR url_delimiter)
FROM <some query>

但我们可以使用一些虚拟分隔符并将其替换为有效,如下所示:

SELECT 
  REPLACE(
    GROUP_CONCAT(`some_table`.id SEPARATOR 'some-tricky-dummy-separator'), 
    'some-tricky-dummy-separator', 
    url_delimiter
  )
FROM <some query>

【讨论】:

    猜你喜欢
    • 2011-12-03
    • 2013-03-08
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2014-01-14
    相关资源
    最近更新 更多