[英]Bitwise MySQL NAND query
我有一個整數表,我想選擇所有整數,如果轉換為二進制,則不會同時設置位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>";
}
謝謝並恭祝安康,
格雷厄姆
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 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.