Gordon,
>...
>SELECT CONVERT(fdata,BIGINT) INTO tmp_int;
>SELECT HEX(tmp_int);
...
Are you looking for...
SELECT CAST(0xABCDEF0123456789 AS UNSIGNED);
+--------------------------------------+
| CAST(0xABCDEF0123456789 AS UNSIGNED) |
+--------------------------------------+
| 12379813738877118345 |
+--------------------------------------+
SELECT HEX(12379813738877118345);
+---------------------------+
| HEX(12379813738877118345) |
+---------------------------+
| ABCDEF0123456789 |
+---------------------------+
PB
-----
Gordon Bruce wrote:
> I just added a user variable @fdata to get visabilility outside of the procedure and
> this is what I get.
>
> mysql> delimiter //
> mysql> create procedure test20 ()
> -> BEGIN
> -> DECLARE fdata BLOB;
> -> DECLARE foffset INT UNSIGNED;
> -> DECLARE flength INT UNSIGNED;
> -> DECLARE tmp_int BIGINT UNSIGNED;
> ->
> -> SELECT 0xABCDEF0123456789 INTO fdata;
> -> SELECT 14 INTO foffset;
> -> SELECT 7 INTO flength;
> ->
> -> SELECT SUBSTR(BINARY(fdata),
> -> FLOOR(foffset/8)+1,
> -> CEIL((flength + (foffset %8 ))%8))
> -> INTO fdata;
> -> set @fdata:=fdata;
> -> END//
> Query OK, 0 rows affected (0.00 sec)
>
> mysql>
> mysql> delimiter ;
> mysql>
> mysql> call test20();
> Query OK, 0 rows affected (0.00 sec)
>
> mysql>
> mysql> select @fdata, hex(@fdata)
> ->
> -> ;
> +--------+-------------+
> | @fdata | hex(@fdata) |
> +--------+-------------+
> | ═∩☺#E | CDEF012345 |
> +--------+-------------+
> 1 row in set (0.00 sec)
>
> -----Original Message-----
> From: David Godsey [mailto:mysql@stripped]
> Sent: Thursday, January 19, 2006 3:33 PM
> To: mysql@stripped
> Subject: [SPAM] - convert help - Bayesian Filter detected spam
>
>
> I am trying to convert binary data to a bigint so I can do bitwise
> operations on the data, and I'm having trouble doing it.
>
> I noticed that if I have binary data and I:
> select data>>1; I get 0 (not what I'm expecting).
>
> Here is a test procedure I wrote:
>
> create procedure test20 ()
> BEGIN
> DECLARE fdata BLOB;
> DECLARE foffset INT UNSIGNED;
> DECLARE flength INT UNSIGNED;
> DECLARE tmp_int BIGINT UNSIGNED;
>
> SELECT 0xABCDEF0123456789 INTO fdata;
> SELECT 14 INTO foffset;
> SELECT 7 INTO flength;
>
> SELECT SUBSTR(BINARY(fdata),
> FLOOR(foffset/8)+1,
> CEIL((flength + (foffset %8 ))%8))
> INTO fdata;
>
> SELECT HEX(fdata);
> SELECT CONVERT(fdata,BIGINT) INTO tmp_int;
> SELECT HEX(tmp_int);
> END
> The last two selects are added to show what I would like to do, but have
> not been able to get it to work.
>
> Any help would be great. Thanks in advance.
>
> Accomplishing the impossible means only that the boss will add it to your
> regular duties.
>
> David Godsey
>
> Accomplishing the impossible means only that the boss will add it to your
> regular duties.
>
> David Godsey
>
>
>
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.375 / Virus Database: 267.14.21/235 - Release Date: 1/19/2006
>
Attachment: [text/html]
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.375 / Virus Database: 267.14.21/235 - Release Date: 1/19/2006