-
mysql关于group_concat()和union all 关联使用后长度的问题5
有个每日在线用户表,每分钟统计一次,记为一条数据。
现在要用highchart来用图展示,故需要拼接每分钟在线人数,包括今天和昨天的。
表结构如下:
CREATE TABLE `t_online_acc` (
`oa_id` int(11) NOT NULL AUTO_INCREMENT,
`oa_time` varchar(25) DEFAULT NULL,
`oa_server_id` varchar(11) DEFAULT NULL,
`oa_channel` varchar(25) DEFAULT NULL,
`oa_count` varchar(255) DEFAULT NULL,
`oa_lastest_update_time` varchar(25) DEFAULT NULL,
PRIMARY KEY (`oa_id`)
) ENGINE=MyISAM AUTO_INCREMENT=8748753 DEFAULT CHARSET=utf8;
其中oa_time为统计时间,oa_count为人数。
查询sql:
select group_concat(t.num_str order by t.oc_time asc) as num_str,'今日在线人数曲线变化表' as oc_ch_desc,t.type,t.oc_time from (select sum(oa_count) as num_str,oa_channel,'TODAY' as type,min(oa_time) as oc_time ,oa_server_id from t_online_acc where date_format(oa_time,'%Y-%m-%d') = '2014-09-12' and oa_server_id = '1011159' group by date_format(oa_time,'%H:%i') order by oa_time asc) t union all (select group_concat(t.num_str order by t.oc_time asc) as num_str,'昨日在线人数曲线变化表' as oc_ch_desc,t.type,t.oc_time from (select sum(oa_count) as num_str,oa_channel,'
表记录每分钟在线人数,通过group_concat()化为一行,num_str记录今天每分钟在线人数。
百度了后发现group_concat()最大长度为1024,但如果要用union all 来关联2个group_concat()后发现最大长度变为341了。能显示正常数据吗?
2014年9月12日 16:13
目前还没有答案
相关推荐
MySQL 虽然没有内置的行转列和列转行函数,但通过 CASE、GROUP_CONCAT、UNION ALL 和 JOIN 等 SQL 语句,我们可以灵活地对数据进行转换,满足不同的数据分析需求。在实际应用中,应根据数据的特性和业务需求选择合适...
1. **调整`group_concat_max_len`参数**:该参数控制着`GROUP_CONCAT()`函数返回的最大长度。较大的值有助于在单个查询中获取更多的数据。 - 修改MySQL配置文件`my.ini`(或等效的配置文件)中的`group_concat_max_...
一种常见的解决方案是使用`GROUP_CONCAT`和`SUBSTRING_INDEX`结合`UNION ALL`来实现动态行转列。`GROUP_CONCAT`用于将多行合并为一个字符串,`SUBSTRING_INDEX`则用于分割字符串并提取特定部分。以下是基本步骤: 1...
mysql 注入提权命令 ...mysql 注入提权命令可以通过 union select 来猜解 mysql 的版本、字段数目、数据库版本及当前用户、写权限、库、表、列名、字段数和字段内容等信息,从而获取服务器的权限。
4. **使用集合操作**:通过`UNION ALL`和`ROW_NUMBER()`也可以构建一个分组后的字符串。 `注意事项.txt`文件很可能包含了执行这些解决方案前需要注意的重要细节,比如可能存在的兼容性问题、备份数据的重要性以及...
继续使用`1 union select 1, group_concat(table_name) from information_schema.tables where table_schema = database()`可以获取该数据库中所有的表名;接着使用`1 union select 1, group_concat(column_name) ...
4. **跨库查询**:通过`GROUP_CONCAT()`函数和`INFORMATION_SCHEMA.SCHEMATA`表,攻击者可以列出所有数据库的名称,例如:`AND 1=2 UNION SELECT 1, GROUP_CONCAT(schema_name), 3 FROM information_schema.schemata...
7. group_concat()函数的使用:使用`group_concat()`函数将组中的字符串连接成为具有各种选项的单个字符串,例如使用`group_concat(user_id)`来连接用户ID。 8. limit函数的使用:使用`limit`函数来限制SQL语句的...
可以使用`INFORMATION_SCHEMA.TABLES`系统表,通过`GROUP_CONCAT`函数将多个结果合并为一个字符串,结合`table_schema=database()`条件,输入`24738’ union select group_concat(table_name),4 from information_...
选择题部分涉及了MySQL的连接语法、版本查看、语句结束符设置、提示符设置、脚本导入、SELECT语句的理解、ENUM排序、LIMIT子句使用以及GROUP_CONCAT函数的作用等知识点: 1. 连接MySQL的正确语法是选项B和C。 2. ...
- 使用`UNION ALL`结合`JOIN`操作实现递归。 - 示例略。 - **存储过程法**: - 创建存储过程,使用循环结构和条件判断来实现递归。 - 示例略。 **结论**: 虽然MySQL没有提供类似于Oracle的内置递归查询功能,但...
选择题部分涉及了连接MySQL服务器的语法、查看版本、设置语句结束符和提示符的命令、导入脚本、SELECT语句的使用、ENUM排序、LIMIT子句、GROUP_CONCAT函数、WITH ROLLUP的含义、SQL模式查看、非严格模式处理无效值、...
19. GROUP_CONCAT()函数:GROUP_CONCAT()函数的作用是将每组的结果字符串连接起来。 20. GROUP子句:GROUP子句带WITH ROLLUP的作用是产生多个级别的统计值。 21. 查看全局SQL模式:查看全局SQL模式的命令是select ...
《MySQL 数据库开发》期末复习试题涵盖了MySQL的基础概念、语法以及使用技巧,旨在检验学生对数据库管理和编程的理解。以下是对这些知识点的详细解释: 1. **外键约束**:外键是数据库设计中的一个重要概念,它用于...
3. **使用`GROUP_CONCAT`和`LIMIT`**:为了快速获取所有表名,攻击者可以使用`GROUP_CONCAT`函数将多个表名合并为一个字符串,然后通过`CONCAT`函数在结果中插入分隔符。这比逐个尝试`LIMIT`更有效率。 4. **字段...
- MySQL 的 `UNION` 操作默认去除重复行,而在 SQL Server 中需要明确使用 `UNION ALL` 才会包含所有行。 6. **存储过程和函数**: - MySQL 的存储过程和函数在语法上与 SQL Server 有些不同,例如变量声明、流程...
MySQL 数据库开发期末复习试题 以下是根据给定文件生成的相关知识点: 数据库开发基础 1. 外键约束:用于表示数据库中行之间的关系的机制。 2. 字符集:是一套符号与编码,它包括编码规则以定义字符如何被编码为...
选择题部分涉及了MySQL的连接语法、版本查询、语句结束符设置、提示符设置、导入SQL脚本、SELECT语句用法、ENUM排序、LIMIT分页、GROUP_CONCAT函数、WITH ROLLUP扩展、SQL模式查询、数据处理模式(非严格和严格)...