From: | will trillich <will(at)serensoft(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: bit operations |
Date: | 2001-07-17 20:50:20 |
Message-ID: | 20010717155020.B9630@serensoft.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Wed, Jul 04, 2001 at 02:56:06PM +0100, Richard Huxton wrote:
> From: "Johan Björk" <johan(at)websidorna(dot)com>
>
> > Have a little problem with bit operaitions that I cannot find the answer
> to on the Internet. Have been searching through the archives but no result.
> >
> > In MySQL you can have a INT column and do bit logic ala C-style like this:
> > "select * from table where flags & 4;"
>
> If you're using an int for "flags":
>
> select * from table where (flags & 4) > 0;
>
> The bitwise AND returns an integer rather than a boolean, and AFAIK SQL
> doesn't follow C's rules on this.
>
> > Can I do something similar with std SQL? I've been trying to cast
> everything to BIT but without success, and I've also been creating a "flags
> bit(4)", setting a row to "1000" (8) and trying to compare, but I have
> absolutely no idea how to.
> >
> > Say I wanna check if 8 (1xxx) and 2 (xx1x) is set, how do I do that?!
>
> To check two values just do:
>
> SELECT * FROM table WHERE (flags & val1 & val2) > 0;
i don't think so.
val1 := 8 := 01000
val2 := 2 := 00010
val1 & val2 00000 zero
probably you meant
(flags & val1) > 0 and (flags & val2) > 0
or
flags & (val1 + val2) > 0
> If you want to use BIT types you'll need something like:
>
> SELECT * FROM table WHERE (flags & '0010100'::BIT) <> '0'::BIT;
>
> and updates like
>
> UPDATE table SET flags = flags | '0001000'::BIT;
>
> Note the need to have the same string-length when using AND/OR.
cool. thanks.
--
I'd concentrate on "living in the now" because it is fun
and on building a better world because it is possible.
- Tod Steward
will(at)serensoft(dot)com
http://sourceforge.net/projects/newbiedoc -- we need your brain!
http://www.dontUthink.com/ -- your brain needs us!
From | Date | Subject | |
---|---|---|---|
Next Message | Gregory Wood | 2001-07-17 20:54:29 | Re: psql -l |
Previous Message | Tom Lane | 2001-07-17 20:49:45 | Re: undeleteable records |