【问题标题】:How to fetch values with a MySQL query?如何使用 MySQL 查询获取值?
【发布时间】:2009-06-12 11:12:03
【问题描述】:

我想在 mysql 查询中获取 First_Name、LastName、First Name Last Name 的所有记录。

例如,

mytable 看起来像这样:

rec Id      First Name     Last Name
1           Gnaniyar       Zubair
2           Frankyn        Albert
3           John           Mathew
4           Suhail         Ahmed

输出应该是这样的:

Gnaniyar Zubair, Frankyn Albert, John Mathew, Suhail Ahmed

把 SQL 给我。

【问题讨论】:

    标签: sql mysql


    【解决方案1】:

    如果这必须在查询中完成,您可以使用GROUP_CONCAT,但除非您按某些内容进行分组,否则这是一个非常愚蠢的查询,并且应该真正在客户端上完成连接。

    SELECT GROUP_CONCAT(FirstName + ' ' + LastName
                        ORDER BY FirstName, LastName
                        SEPARATOR ', ') AS Names
    FROM People;
    

    【讨论】:

    • 感谢 Blixt...我收到消息说 1 行已提取...但除了“Blob”之外什么都没有显示
    • 确实,它是一种 BLOB(二进制大对象),因为它可能会变得很长。它显示为 BLOB,因为您的客户端界面考虑到了这一点并隐藏了该字段。
    【解决方案2】:

    这不是获取包含所有记录的一行的问题,而是数据表示的问题。所以,我建议做一个简单的SELECT查询,取出你需要的记录,然后在视图层里随意排列。

    另一方面,为什么需要在 SQL 级别而不是视图级别解决此记录连接?

    【讨论】:

      【解决方案3】:

      如果您只想将它​​们放在一行中,那么您可能没有正确使用您的数据库。

      如果您只想将名字和姓氏连接在一起,那很容易:

       SELECT CONCAT(`First Name`, ' ', `Last Name`) FROM mytable
      

      【讨论】:

      • 嗨朋友们,感谢您的即时回复。这是正确的查询。但是所有 4 条记录都将显示此连接...我想将所有记录放在一行中。您的查询将给出输出,如 Gnaniyar Zubair Frankyn Albert、John Mathew、Suhail Ahmed(共 4 条记录)但我只想获得一条记录,如 Gnaniyar Zubair、Frankyn Albert、John Mathew、Suhail Ahmed 提前致谢 - Gnaniyar Zubair
      • 就像我说的,你没有正确使用你的数据库。正如其他人所建议的那样,认为 GROUP_CONCAT 构造可能会有所帮助。
      猜你喜欢
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 2018-05-23
      • 2017-12-07
      • 2010-10-28
      • 1970-01-01
      • 2021-09-22
      相关资源
      最近更新 更多