Mysql - 将字符串与另一个 sql 结果连接起来

标签 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。

最佳答案

您可以使用以下内容,使用 CONCAT (或 CONCAT_WS )和一个 CAST字符:

-- 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可以在没有 CAST 的情况下连接 COUNT(*)of users 的结果或 CONVERT (显式转换)。

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

关于Mysql - 将字符串与另一个 sql 结果连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51817718/

相关文章:

python - 如何在一行中显示多个字段? (Django 管理员)

MYSQL:- 如何区分 É 和 é 法语字符

sql - 为什么这两个查询的时间相似(超过 200 万行大约需要 52 秒)

mysql - Sequelize 原始查询返回 TextRows 数组

MySQL 的 HEX() 和 UNHEX() 等同于 Postgres?

php - 计算整个类别的销售额

mysql - 如何使用 MySQL 一次查询更新多行?

mysql - 用于 Rails 上的复杂浏览器游戏的 MongoDB 或 MySQL

sql - 使用sql OR 的更有效方法?

PHP 搜索 SQL 数据库