In the last episode (Oct 16), Kailash R said:
> Nice input Dan. Let me run some checks. My query is as follows:
> 
> select group_concat(Field1), field2, field3 from table1 group by field2, 
> field3 into str;
> @sql = concat("select blah ... where field1 in ' ,str);
> prepare stmt from @sql;
> execute stmt;
> deallocate prepare stmt;

Did you maybe get a warning on your first SELECT statement?  On a test table
of dictionary words:

mysql> select group_concat(word) from words into @a;
Query OK, 1 row affected, 1 warning (0.70 sec)

mysql> show warnings;
+---------+------+-----------------------------------+
| Level   | Code | Message                           |
+---------+------+-----------------------------------+
| Warning | 1260 | Row 146 was cut by GROUP_CONCAT() |
+---------+------+-----------------------------------+
1 row in set (0.00 sec)

mysql> select length(@a);
+------------+
| length(@a) |
+------------+
|       1024 |
+------------+
1 row in set (0.01 sec)


>From the documentation, GROUP_CONCAT has a default 1024-byte limit:

http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html#function_group-concat

    The result is truncated to the maximum length that is given by the
    group_concat_max_len system variable, which has a default value of 1024. 
    The value can be set higher, although the effective maximum length of
    the return value is constrained by the value of max_allowed_packet.  The
    syntax to change the value of group_concat_max_len at runtime is as
    follows, where val is an unsigned integer:

    SET [GLOBAL | SESSION] group_concat_max_len = val;

-- 
        Dan Nelson
        dnel...@allantgroup.com

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to