Re: select on set yields exponential notation
Ah, I see. Of course. And adding 0 is exactly what the manual says to do. I was about to reply to say that |0 works where +0 does not when Bernard sent his excellent suggestion to cast as unsigned. Then I spent a while trying to figure out why you got such a large number for '40'. I finally noticed you had '30' twice, '40' where one would expect '50', and no '50' in the set definition, so '40' is the 49th element of the set. I don't expect that's a problem for you, as I imagine you just made up that table to illustrate the issue, but it boggled my mind for a bit. Now, it seems to me, the question is whether this is a bug or a documentation error. Michael Greg Vines wrote: With sets if you select the set, you get a comma delimited list, but if you add zero, you get the number value of the entire set (which is what I want). The response is not always in exponential notation - just when a high order bit is set. This seems to be a problem with the output formatting. Do you know if there is a way to set the number of characters in a numeric response? On Fri, 2004-02-06 at 12:54, Michael Stassen wrote: Why are you adding 0? Try this: SELECT var1, var2 FROM test1; Michael Greg Vines wrote: I'm trying to select all the fields from a set but when the number is large, it is returned in exponential notation. Is there a way to keep the returned number an integer? Example: create simple table: create table test1( var1 int, var2 set("1","2","3","4","5","6","7","8","9","10", "11","12","13","14","15","16","17","18","19","20", "21","22","23","24","25","26","27","28","29","30", "31","32","33","34","35","36","37","38","39","30", "41","42","43","44","45","46","47","48","49","40", "51","52","53","54","55","56","57","58","59","60") ); Add a row: insert into test1 values (1, "40"); Then select & oops: select var1,var2+0 from test1; +--+-+ | var1 | var2+0 | +--+-+ |1 | 5.6294995342131e+14 | +--+-+ How can I get this output as an integer? I've tried both MySQL 3.23 and 4.0.17 with the same result. I'm running on linux (RHL 8.0) Thanks - Greg -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Re: select on set yields exponential notation
Thanks Bernard - that fixed it! On Fri, 2004-02-06 at 13:41, Bernard Clement wrote: > > If you are using 4.0.2 and above you can use cast. > > mysql> select var1,cast(var2 as unsigned) from test1; > +--++ > | var1 | cast(var2 as unsigned) | > +--++ > |1 |562949953421312 | > |1 | 1 | > |1 | 32768 | > +--++ > 3 rows in set (0.00 sec) > > Note I add a row with "1" and another with "16". > > Bernard > > On Friday 06 February 2004 16:22, Greg Vines wrote: > > With sets if you select the set, you get a comma delimited list, but if > > you add zero, you get the number value of the entire set (which is what > > I want). The response is not always in exponential notation - just when > > a high order bit is set. > > > > This seems to be a problem with the output formatting. Do you know if > > there is a way to set the number of characters in a numeric response? > > > > On Fri, 2004-02-06 at 12:54, Michael Stassen wrote: > > > Why are you adding 0? Try this: > > > > > >SELECT var1, var2 FROM test1; > > > > > > Michael > > > > > > Greg Vines wrote: > > > > I'm trying to select all the fields from a set but when the number is > > > > large, it is returned in exponential notation. Is there a way to keep > > > > the returned number an integer? > > > > > > > > Example: > > > > create simple table: > > > > > > > > create table test1( > > > > var1 int, > > > > var2 set("1","2","3","4","5","6","7","8","9","10", > > > > "11","12","13","14","15","16","17","18","19","20", > > > > "21","22","23","24","25","26","27","28","29","30", > > > > "31","32","33","34","35","36","37","38","39","30", > > > > "41","42","43","44","45","46","47","48","49","40", > > > > "51","52","53","54","55","56","57","58","59","60") > > > > ); > > > > > > > > Add a row: > > > > > > > > insert into test1 values (1, "40"); > > > > > > > > Then select & oops: > > > > > > > > select var1,var2+0 from test1; > > > > > > > > +--+-+ > > > > > > > > | var1 | var2+0 | > > > > > > > > +--+-+ > > > > > > > > |1 | 5.6294995342131e+14 | > > > > > > > > +--+-+ > > > > > > > > > > > > How can I get this output as an integer? > > > > > > > > I've tried both MySQL 3.23 and 4.0.17 with the same result. I'm > > > > running on linux (RHL 8.0) > > > > > > > > Thanks > > > > - Greg > > > > -- > > Greg Vines mailto:[EMAIL PROTECTED] > > Manzanita Systems http://www.manzanitasystems.com > > 14400 Midland Road Voice: (858) 679-8990 x104 > > Poway, CA 92064 Fax: (858) 679-8991 -- Greg Vines mailto:[EMAIL PROTECTED] Manzanita Systems http://www.manzanitasystems.com 14400 Midland Road Voice: (858) 679-8990 x104 Poway, CA 92064 Fax: (858) 679-8991 -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Re: select on set yields exponential notation
If you are using 4.0.2 and above you can use cast. mysql> select var1,cast(var2 as unsigned) from test1; +--++ | var1 | cast(var2 as unsigned) | +--++ |1 |562949953421312 | |1 | 1 | |1 | 32768 | +--++ 3 rows in set (0.00 sec) Note I add a row with "1" and another with "16". Bernard On Friday 06 February 2004 16:22, Greg Vines wrote: > With sets if you select the set, you get a comma delimited list, but if > you add zero, you get the number value of the entire set (which is what > I want). The response is not always in exponential notation - just when > a high order bit is set. > > This seems to be a problem with the output formatting. Do you know if > there is a way to set the number of characters in a numeric response? > > On Fri, 2004-02-06 at 12:54, Michael Stassen wrote: > > Why are you adding 0? Try this: > > > >SELECT var1, var2 FROM test1; > > > > Michael > > > > Greg Vines wrote: > > > I'm trying to select all the fields from a set but when the number is > > > large, it is returned in exponential notation. Is there a way to keep > > > the returned number an integer? > > > > > > Example: > > > create simple table: > > > > > > create table test1( > > > var1 int, > > > var2 set("1","2","3","4","5","6","7","8","9","10", > > > "11","12","13","14","15","16","17","18","19","20", > > > "21","22","23","24","25","26","27","28","29","30", > > > "31","32","33","34","35","36","37","38","39","30", > > > "41","42","43","44","45","46","47","48","49","40", > > > "51","52","53","54","55","56","57","58","59","60") > > > ); > > > > > > Add a row: > > > > > > insert into test1 values (1, "40"); > > > > > > Then select & oops: > > > > > > select var1,var2+0 from test1; > > > > > > +--+-+ > > > > > > | var1 | var2+0 | > > > > > > +--+-+ > > > > > > |1 | 5.6294995342131e+14 | > > > > > > +--+-+ > > > > > > > > > How can I get this output as an integer? > > > > > > I've tried both MySQL 3.23 and 4.0.17 with the same result. I'm > > > running on linux (RHL 8.0) > > > > > > Thanks > > > - Greg > > -- > Greg Vines mailto:[EMAIL PROTECTED] > Manzanita Systems http://www.manzanitasystems.com > 14400 Midland Road Voice: (858) 679-8990 x104 > Poway, CA 92064 Fax: (858) 679-8991 -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Re: select on set yields exponential notation
With sets if you select the set, you get a comma delimited list, but if you add zero, you get the number value of the entire set (which is what I want). The response is not always in exponential notation - just when a high order bit is set. This seems to be a problem with the output formatting. Do you know if there is a way to set the number of characters in a numeric response? On Fri, 2004-02-06 at 12:54, Michael Stassen wrote: > Why are you adding 0? Try this: > >SELECT var1, var2 FROM test1; > > Michael > > Greg Vines wrote: > > > I'm trying to select all the fields from a set but when the number is > > large, it is returned in exponential notation. Is there a way to keep > > the returned number an integer? > > > > Example: > > create simple table: > > > > create table test1( > > var1 int, > > var2 set("1","2","3","4","5","6","7","8","9","10", > > "11","12","13","14","15","16","17","18","19","20", > > "21","22","23","24","25","26","27","28","29","30", > > "31","32","33","34","35","36","37","38","39","30", > > "41","42","43","44","45","46","47","48","49","40", > > "51","52","53","54","55","56","57","58","59","60") > > ); > > > > Add a row: > > > > insert into test1 values (1, "40"); > > > > Then select & oops: > > > > select var1,var2+0 from test1; > > > > +--+-+ > > | var1 | var2+0 | > > +--+-+ > > |1 | 5.6294995342131e+14 | > > +--+-+ > > > > > > How can I get this output as an integer? > > > > I've tried both MySQL 3.23 and 4.0.17 with the same result. I'm running > > on linux (RHL 8.0) > > > > Thanks > > - Greg > > > > > > -- Greg Vines mailto:[EMAIL PROTECTED] Manzanita Systems http://www.manzanitasystems.com 14400 Midland Road Voice: (858) 679-8990 x104 Poway, CA 92064 Fax: (858) 679-8991 -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Re: select on set yields exponential notation
Why are you adding 0? Try this: SELECT var1, var2 FROM test1; Michael Greg Vines wrote: I'm trying to select all the fields from a set but when the number is large, it is returned in exponential notation. Is there a way to keep the returned number an integer? Example: create simple table: create table test1( var1 int, var2 set("1","2","3","4","5","6","7","8","9","10", "11","12","13","14","15","16","17","18","19","20", "21","22","23","24","25","26","27","28","29","30", "31","32","33","34","35","36","37","38","39","30", "41","42","43","44","45","46","47","48","49","40", "51","52","53","54","55","56","57","58","59","60") ); Add a row: insert into test1 values (1, "40"); Then select & oops: select var1,var2+0 from test1; +--+-+ | var1 | var2+0 | +--+-+ |1 | 5.6294995342131e+14 | +--+-+ How can I get this output as an integer? I've tried both MySQL 3.23 and 4.0.17 with the same result. I'm running on linux (RHL 8.0) Thanks - Greg -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
select on set yields exponential notation
I'm trying to select all the fields from a set but when the number is large, it is returned in exponential notation. Is there a way to keep the returned number an integer? Example: create simple table: create table test1( var1 int, var2 set("1","2","3","4","5","6","7","8","9","10", "11","12","13","14","15","16","17","18","19","20", "21","22","23","24","25","26","27","28","29","30", "31","32","33","34","35","36","37","38","39","30", "41","42","43","44","45","46","47","48","49","40", "51","52","53","54","55","56","57","58","59","60") ); Add a row: insert into test1 values (1, "40"); Then select & oops: select var1,var2+0 from test1; +--+-+ | var1 | var2+0 | +--+-+ |1 | 5.6294995342131e+14 | +--+-+ How can I get this output as an integer? I've tried both MySQL 3.23 and 4.0.17 with the same result. I'm running on linux (RHL 8.0) Thanks - Greg -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]