将字符串添加到MySQL Count查询的结果中

时间:2016-05-07 19:24:19

标签: mysql sql string select count

我有一个MySQL查询,我在Alpha Anywhere中使用,这是一个数据库应用程序开发工具。这是查询:

SELECT  Count(*)  AS Expr1  FROM timelines
WHERE CaseName = :whichcases  AND
Custodian = :whichcustodians  AND  
Device = :whichdevices

查询工作正常,但我需要在结果中添加一个字符串。例如,如果查询返回 352,133 ,我想添加字符串' Total Records'对于它, 352,133总记录的最终结果

在发布此问题之前,我尽可能彻底地进行了搜索。我发现很多主题都很接近,但没有一个真正有用。

2 个答案:

答案 0 :(得分:1)

我通常更喜欢在应用程序端执行此类操作,但如果您必须在查询中执行此操作,则可以使用concat函数:

SELECT CONCAT(COUNT(*), ' Total Records') AS Expr1 
FROM   timelines 
WHERE  CaseName = :whichcases AND 
       Custodian = :whichcustodians AND
       Device = :whichdevices

答案 1 :(得分:0)

立即做这样的联接:

SELECT concat(Count(*), ' total records') AS Expr1 
FROM   ...

将在MySql版本中提供二进制结果< 5.5.3(fiddle)。另请参阅concat上的5.5文档:

  

返回连接参数产生的字符串。可能有一个或多个参数。如果所有参数都是非二进制字符串,则结果为非二进制字符串。如果参数包含任何二进制字符串,则结果为二进制字符串。数字参数将转换为其等效的字符串形式。这是MySQL 5.5.3中的非二进制字符串。 在5.5.3之前,它是二进制字符串

注意:小提示显示二进制结果,但它在MySql 5.6.21上运行。因此,您可能还需要为其他版本进行解决。

解决此问题的一种方法是打包查询:

SELECT concat(Expr1, ' total records') AS Expr1
FROM   ( 
     SELECT Count(*) AS Expr1 
     FROM   timelines
     WHERE  CaseName = :whichcases
        AND Custodian = :whichcustodians
        AND Device = :whichdevices
) as sub

或者您可以使用CAST

SELECT concat(cast(count(*) as char), ' total records') as Expr1
FROM   timelines
WHERE  CaseName = :whichcases
   AND Custodian = :whichcustodians
   AND Device = :whichdevices