Mysql-concat字符串与另一个sql结果

时间:2018-08-13 08:02:13

标签: mysql sql

由于我是mysql的新手。

select concat ((select to_char(count(*)) from users) ,' of users')  from dual;
(or)
select concat ((select to_char(count(*)) from users) ,' of users')  ;

我期望结果集输出为“ 100个用户”。在oracle中,上述语句将起作用,但在mysql中则无效。我得到的结果值为1。

2 个答案:

答案 0 :(得分:2)

您可以使用以下命令,将CONCAT(或CONCAT_WS)和CAST用作char:

-- using CONCAT
SELECT CONCAT(CAST(COUNT(*) AS CHAR), ' of users') FROM users;

-- using CONCAT_WS
SELECT CONCAT_WS(' ', CAST(COUNT(*) AS CHAR), 'of users') FROM users;

您需要使用CAST(... AS CHAR(5))而不是TO_CHAR。从MySQL 8.0开始,CONCAT可以合并COUNT(*)of users的结果,而无需CASTCONVERT(显式转换)。

  

演示: https://www.db-fiddle.com/f/3mVqPxrDZHURyMbX6px4L/0

答案 1 :(得分:0)

以下面的方式尝试,它将在下面工作,这是一个示例,而不是您的

SELECT CONCAT(CAST(COUNT(*) AS CHAR(5)), ' of users') FROM Vendor;

http://sqlfiddle.com/#!9/4704eb/18