查询中的MySQL group_concat_max_len

nok*_*tec 11 mysql sql

我正在寻找插入此方法的方法

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' ) 
Run Code Online (Sandbox Code Playgroud)

但我无法使它工作,因为通常这个查询是自己执行的,我想知道你们中有些人是否有任何想法如何让它工作

Bil*_*win 12

您不能SET像表达式那样在表达式中使用语句,甚至不能在子查询中使用语句.SET单独执行一个语句.您设置的值将影响后续语句.

顺便说一句,您是否意识到这SET GLOBAL意味着该设置将影响您服务器上的所有其他MySQL连接,并且在您当前会话完成后该设置甚至会持续存在,直到您将其设置为其他内容?SET SESSION如果您只希望该值影响当前会话,则可能需要使用.


Smi*_*ith 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("").....
Run Code Online (Sandbox Code Playgroud)