簡體   English   中英

按位MySQL NAND查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM