首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >位MySQL NAND查询

位MySQL NAND查询
EN

Stack Overflow用户
提问于 2014-01-22 11:29:11
回答 1查看 396关注 0票数 0

我有一个整数表,我想要选择所有这些,如果转换为二进制,没有同时设置1位和2位。

或者,对于另一个没有同时设置位3和4位的查询。

例如,在具有列名下降值的表中,具有值.

7 11 12 13 18 20 27

我会得到4,12和20作为第一选择的结果,我将得到18对于第二选择。

我不知道从何说起,我试过.

代码语言:javascript
复制
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>";
}

感谢并致以问候

格雷厄姆

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-22 11:49:44

代码语言:javascript
复制
CREATE TABLE t
    (`id` int)
;

INSERT INTO t
    (`id`)
VALUES
    (4),
    (7),
    (11),
    (12),
    (13),
    (18),
    (20),
    (27)
;

代码语言:javascript
复制
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 |

代码语言:javascript
复制
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 |

代码语言:javascript
复制
select 
id,
bin(id)
from t
where not(id & 4) = 4
and not(id & 8) = 8;


| ID | BIN(ID) |
|----|---------|
| 18 |   10010 |
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21281689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档