IT Community - Software Programming, Web Development and Technical Support

group_concat in MySQL

This is a discussion on group_concat in MySQL within the Database Support forums, part of the Web Development category; Hi, Is it possible to use more group_concat in a single select query in MySql?...


Go Back   IT Community - Software Programming, Web Development and Technical Support > Web Development > Database Support

Register FAQ Members List Calendar Mark Forums Read
  #1  
Old 05-23-2007, 05:16 AM
Jeyaseelansarc Jeyaseelansarc is offline
D-Web Genius
 
Join Date: Mar 2007
Location: Chennai
Posts: 1,165
Jeyaseelansarc is on a distinguished road
Send a message via AIM to Jeyaseelansarc
Default group_concat in MySQL

Hi,

Is it possible to use more group_concat in a single select query in MySql?
__________________
With,
J. Jeyaseelan

Everything Possible
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2  
Old 05-24-2007, 04:51 AM
vadivelanvaidyanathan vadivelanvaidyanathan is offline
D-Web Genius
 
Join Date: Feb 2007
Posts: 801
vadivelanvaidyanathan is on a distinguished road
Default Re: Use on group_concat

Yeah.. Its possible
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3  
Old 07-10-2007, 07:24 AM
priyan priyan is offline
D-Web Sr.Programmer
 
Join Date: Mar 2007
Posts: 133
priyan is on a distinguished road
Default Re: Use on group_concat

Hi,

You can use any number of group_concat function in a select query but the result value depends of the system variable
group_concat_max_len. The default values for this is 1024 (1 kb). If you want to change the the length of that system
variable use can use the below given.

To view the current the length of the group_concat function.
mysql> SHOW VARIABLES LIKE 'group%';
Variable_name Value
-------------------- ------
group_concat_max_len 1024

to change the length of the group_concat function use,
mysql> SET @@group_concat_max_len = 524288; -- 0.5 MB

Now check the length of the variable,
mysql>SHOW VARIABLES LIKE 'group%';
Variable_name Value
-------------------- ------
group_concat_max_len 524288

The value can be set higher, although the maximum effective length of the return value is constrained
by the value of max_allowed_packet. The default value for varialbe max_allowed_packet is 1 mb. You can change value
of this variable also.

To change the value of the max_allowed_packet size, first need to modify this value in the config (my.cnf or .ini) file as given below..

# Set max allowed packet size to 2 MB
max_allowed_packet=2M

Restart the mysql service and the system variable as given below.

mysql>SHOW VARIABLES LIKE 'max_allowed_packet';
mysql>SET @@ max_allowed_packet = 2097152; -- 2 mb, value in bytes..

Now the max_allowed_packet value changed to 2 mb.
__________________
Keep smiling...
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4  
Old 07-11-2007, 01:50 AM
Murali Murali is offline
D-Web Master
 
Join Date: Feb 2007
Location: India-Chennai.
Posts: 385
Murali is on a distinguished road
Send a message via AIM to Murali
Default Re: Use on group_concat

Hi,

While using group_concat in my query,the result set cannot be viewed properly.

Iam using TOAD for MYSQL editor for my MYSQL Database.

It displays System.Byte[], this is due to problem in the TOAD for MYSQL or need to change values for any server side variables?
__________________
-Murali..
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5  
Old 07-11-2007, 03:51 AM
priyan priyan is offline
D-Web Sr.Programmer
 
Join Date: Mar 2007
Posts: 133
priyan is on a distinguished road
Default Re: Use on group_concat

Hi Murali,
Generaly group_concat functions returns the result in blob format. It seems like like toad error / may not a error also. Anyway, if you want to view the result set in toad using group_concat function means use CAST function and convert the group concat result set into binary.

Eg..
SELECT CAST(group_concat(emp_id) AS BINARY) FROM emp_master;
__________________
Keep smiling...
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6  
Old 07-11-2007, 05:28 AM
Murali Murali is offline
D-Web Master
 
Join Date: Feb 2007
Location: India-Chennai.
Posts: 385
Murali is on a distinguished road
Send a message via AIM to Murali
Default Re: Use on group_concat

Again an useful one ....
__________________
-Murali..
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #7  
Old 07-16-2007, 09:39 PM
Gopisoft Gopisoft is offline
D-Web Sr.Programmer
 
Join Date: Feb 2007
Posts: 119
Gopisoft is on a distinguished road
Question Re: Use on group_concat

Hi,

Please hel to me, GROUP_CONCAT function is available in MS SQL SERVER and ORACLE?

-R.Gopi
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #8  
Old 07-16-2007, 10:29 PM
prasath prasath is offline
D-Web Sr.Programmer
 
Join Date: Jul 2007
Location: Chennai
Posts: 173
prasath is on a distinguished road
Default Re: Use on group_concat

Hi,
Group_concat is avilable in Mysql server only,but oracle has equalient group concat functionality that achived in simple query.it is given as below


CREATE OR REPLACE TYPE ntt_varchar2 AS TABLEOF VARCHAR2(4000);
select deptno, cast(collect(ename) as ntt_varchar2) as vals from emp group by deptno
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #9  
Old 07-16-2007, 11:40 PM
priyan priyan is offline
D-Web Sr.Programmer
 
Join Date: Mar 2007
Posts: 133
priyan is on a distinguished road
Default Re: Use on group_concat

Hi Prasad,

As you said there is no pre definied function (like GROUP_CONCAT in mysql) available in MS-SQL or Oracle.

for MS-SQL we need to use stored function / precedure to get the result as desired. There is no direct function available for group_concat in oracle also.

CREATE OR REPLACE TYPE ntt_varchar2 AS TABLEOF VARCHAR2(4000);
select deptno, cast(collect(ename) as ntt_varchar2) as vals from emp group by deptno

I tried your points in oracle, but it throws error like this...
ORA-00904: "COLLECT": invalid identifier

Can u please clarify ?
__________________
Keep smiling...
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #10  
Old 07-18-2007, 02:22 AM
Murali Murali is offline
D-Web Master
 
Join Date: Feb 2007
Location: India-Chennai.
Posts: 385
Murali is on a distinguished road
Send a message via AIM to Murali
Default Re: Use on group_concat

Hi Priyan,

May be running the query in a lower version.
COLLECT Operator is available in ORACLE 10g Version.

Check Your Version

SELECT * FROM V$VERSION;

Try the below in ORACLE-10g

SELECT * FROM V$VERSION;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

CREATE OR REPLACE TYPE Cnvt_Type IS TABLE OF VARCHAR2(100);

CREATE TABLE TEST_VALUE(ID NUMBER,NAME VARCHAR(100));

INSERT INTO TEST_VALUE VALUES(1,'TEST');
INSERT INTO TEST_VALUE VALUES(2,'TEST1');
INSERT INTO TEST_VALUE VALUES(3,'TEST2');
INSERT INTO TEST_VALUE VALUES(4,'TEST3');

SELECT CAST(COLLECT(NAME) AS Cnvt_Type)AS Records FROM TEST_VALUE;

Records
--------
TEST
TEST1
TEST2
TEST3

Prasath,

By using Collection Method as per your idea, it will return the result in different rows but using the GROUP_CONCAT() function in MYSQL will return the record set in a single row with comma seperator.
__________________
-Murali..
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
MySQL lldcrb328 PHP Programming 2 02-15-2009 09:45 PM
I Can Help With MYSQL theseokit Database Support 9 01-21-2009 11:01 PM
php-mysql lekshmy PHP Programming 0 01-21-2009 10:58 PM
Why to use MySQL Amisha_Sharma Database Support 1 01-07-2009 07:56 PM
multiple group_concat problem fncll Database Support 4 11-30-2007 12:06 AM


All times are GMT -7. The time now is 09:41 AM.


Copyright ©2004 - 2007, DiscussWeb. All Rights Reserved.
Our Partners
One Way Moving Companies | Stamford Dentist | Euro Millions Lottery | Home Loans| Furniture

SEO by vBSEO 3.0.0