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


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to