我有一个整数表,我想选择所有,如果转换为二进制,则不会同时设置第1位和第2位。
或者,对于另一个查询,它没有设置第3位和第4位。
例如,在列名为decvalue的表中,值为......
4 7 11 12 13 18 20 27
我会得到4,12和20作为第一次选择的结果 第二次选择我会得到18分。
我不知道从哪里开始,我试过......
foreach($db->query('SELECT id, lineid, decvalue, dateupdated FROM trialtable WHERE decvalue 1!&2 ORDER BY id ASC') as $record)
{
id=$record['id'];
$dateupdated=$record['dateupdated'];
$decvalue=$record['decvalue'];
echo $dateupdated." decvalue<br>";
}
谢谢和问候,
格雷厄姆
答案 0 :(得分:0)
CREATE TABLE t
(`id` int)
;
INSERT INTO t
(`id`)
VALUES
(4),
(7),
(11),
(12),
(13),
(18),
(20),
(27)
;
select id, bin(id)
from t;
| ID | BIN(ID) |
|----|---------|
| 4 | 100 |
| 7 | 111 |
| 11 | 1011 |
| 12 | 1100 |
| 13 | 1101 |
| 18 | 10010 |
| 20 | 10100 |
| 27 | 11011 |
select
id,
bin(id)
from t
where not(id & 1) = 1
and not(id & 2) = 2;
| ID | BIN(ID) |
|----|---------|
| 4 | 100 |
| 12 | 1100 |
| 20 | 10100 |
select
id,
bin(id)
from t
where not(id & 4) = 4
and not(id & 8) = 8;
| ID | BIN(ID) |
|----|---------|
| 18 | 10010 |