我GROUP_CONCAT()在MySQL查询中使用将多行转换为单个字符串.但是,此函数的结果的最大长度是1024字符.
我非常清楚我可以改变参数group_concat_max_len来增加这个限制:
SET SESSION group_concat_max_len = 1000000;
Run Code Online (Sandbox Code Playgroud)
但是,在我正在使用的服务器上,我无法更改任何参数.不是通过使用前面的查询而是通过编辑任何配置文件.
所以我的问题是:有没有其他方法可以将多行查询的输出转换为单个字符串?
我需要删除数百个共享公共前缀的mysql数据库,但是随机id为其名称的其余部分(例如,database_0123456789,database_9876543210).所有这些数据库都在同一台服务器上.我不想丢弃同一台服务器上的其他数据库.
这就是我想做的事情:
DROP DATABASE `database_*`;
Run Code Online (Sandbox Code Playgroud)
我怎样才能有效地放弃这些?我可以运行MySQL查询吗?也许是一个shell脚本?
我在这个问题上找到了另一个帖子,但是我无法使用它的解决方案,所以我想我会更清楚和详细地询问.
我有一个代表vBulletin论坛的大型MySQL数据库.几年来,这个论坛已经对每个视图生成一个错误,每次创建一个名为新表aagregate_temp_1251634200,aagregate_temp_1251734400等等等,有在数据库中这些表的约20,000,我想将它们全部删除.
我想发出一个相当于的命令DROP TABLE WHERE TABLE_NAME LIKE 'aggregate_temp%';.
不幸的是,这个命令不起作用,谷歌对这个问题的结果充满了我所理解的精心设计的存储过程,而且所有这些程序似乎都适合不同海报的更复杂的问题.
是否可以编写一个基于name like匹配丢弃多个表的简单语句?
I have a bunch of tables in a MySQL database, some of them starting with phpbb_* which I wanted to delete all of them. Does someone know a way to do so instead of doing
drop table <tablename>;
Run Code Online (Sandbox Code Playgroud)
every single time? Like a regex?
drop table phpbb*
Run Code Online (Sandbox Code Playgroud)
or something like?