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
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
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
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
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]