我正在寻找插入此
的方法 SET GLOBAL group_concat_max_len=15000
在现有SQL查询中,如下所示:
SELECT *
FROM `Pages`
WHERE id =1
UNION SELECT 1 , 2, IF( 1 >0, SET GLOBAL group_concat_max_len=15000,'B' )
但是我无法让它工作,因为通常这个查询是自己执行的,我想知道你们中有些人是否知道如何让它工作
答案 0 :(得分:12)
您不能像表达式一样在表达式中使用SET
语句,甚至不能在子查询中使用SET
语句。在一个语句中单独执行SET GLOBAL
。您设置的值将影响后续语句。
顺便提一下,您是否知道SET SESSION
表示该设置将影响您服务器上的所有其他MySQL连接,并且在您当前会话完成后该设置甚至会保留,直到您将其设置为其他内容?如果您只希望该值影响当前会话,则可能需要使用{{1}}。
答案 1 :(得分:5)
CI3示例,您无法将它们组合在一起,但您可以执行单独的查询,例如:
public function myModelFunction($id){
//set mysql session variable
$this->db->query("SET @@group_concat_max_len = 2048;");
//actual query
$query= $this->db->query("").....
答案 2 :(得分:3)
GROUP_CONCAT()函数的最大允许结果长度(以字节为单位)。默认值为1024。 MySQL的>显示变量,例如'group%';
您更改了group_concat_max_len的值。在您的配置文件中或设置会话变量,例如“SET @@ group_concat_max_len = 2048;'
答案 3 :(得分:1)
你可以一个接一个地执行它们,我认为它会产生预期的效果或者用a分开;标志。
答案 4 :(得分:0)
对于新用户,在增加group_concat_max_len时搜索解决方案时,我发现在某些情况下,my.cnf文件中未定义变量。没有什么可担心的只是在my.cnf文件中的标题[mysqld]下加入这个变量group_concat_max_len = XXXXX并重新启动mysql ...你完成了!!!
XXXXX =您想要的值,例如:2048,4096等。