【问题标题】:Get GROUP_BY values as strings获取 GROUP_BY 值作为字符串
【发布时间】:2013-03-13 19:36:52
【问题描述】:

我有一个简单的表格,叫做问题:

id | asker
 1 | Bob
 2 | Marley
 3 | Bob

我想获得一个以逗号分隔的询问者值列表。我使用以下查询:

SELECT GROUP_CONCAT(asker) FROM questions

这将导致:

Bob,Marley,Bob

我希望它得到这样的结果:

'Bob','Marley','Bob'

谢谢

【问题讨论】:

  • 有人犹豫要问...但是为什么你需要那个? (附带说明:如果asker 可以包含逗号,那你就完蛋了。
  • 我想在另一个查询的“NOT IN()”参数中使用该字符串,因此它必须像字符串一样工作,否则mysql会假定这些是列名
  • 为什么不在一个带有NOT EXISTS()的查询中包含它?
  • 抱歉无法理解您...您的意思是使用 NOT EXTITS() 而不是 NOT IN()?
  • 是的SELECT ....your query ..... WHERE NOT EXISTS(SELECT asker FROM questions WHERE asker = somefieldinyourquery)

标签: php mysql sql group-by group-concat


【解决方案1】:

原版在 mySQL 中不太适用。

解决 Wrikken 非常有道理的担忧

SELECT GROUP_CONCAT(concat('''',asker,'''')) FROM questions

【讨论】:

  • asker 不会包含逗号或除字母以外的任何其他字符...所以您之前的解决方案是正确的 :)
  • 哈,只有字母可以节省时间,因为我的下一个问题是'questions.asker 字段...
  • 那又是什么问题?这是以防万一 questions.asker 有什么价值??
  • 前一个更简单,更有效......所以你会重新编辑它吗? Wrikken 还假设了一个我无法理解的问题......无论如何你可以返回以前的答案吗?谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多