gpt4 book ai didi

php - 二进制比较给出错误结果 MYSQL

转载 作者:可可西里 更新时间:2023-11-01 07:20:10 29 4
gpt4 key购买 nike

将这个数据库命名为 Employees:

+--+----------------+
|ID|Ability_required|
+--+----------------+
|1 | 0000000111 |
|2 | 0000001111 |
|3 | 0000000111 |
|4 | 0000001101 |
|5 | 0000001111 |
+--+----------------+

这个 SQL 查询:

SELECT ID FROM `Employees`
WHERE `Ability_required` & b'0000001111' = b'0000001111'

为什么我的 MYSQL 返回行号 1 和 3?我在这里做错了什么?

查看图片示例: enter image description here

enter image description here

最佳答案

您将数字存储为字符串,而 bitwise and对整数进行运算。 MySQL 将执行隐式转换,但是,它假定字符串表示十进制数。

使用 MySQL 手动转换字符串 CONV功能:

SELECT * FROM `Employees`
WHERE CONV(`Ability_required`, 2, 10) & b'0000001111' = b'0000001111';
ID Ability_required
2 0000001111
5 0000001111

我建议使用 INT 字段。或者如果可能的话规范化表格。

关于php - 二进制比较给出错误结果 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28898884/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com