按位运算的替代方法

2024-04-11

设想 : 我说有 4 个复选框,用户可以以任意组合选择这些复选框(他们也有权不选择任何一个复选框)。我必须将这 4 个选项存储到一列中。我认为最好的选择是使用二进制表示形式存储

option1 has the constant value 1 
option2 has the constant value 2
option3 has the constant value 4
option4 has the constant value 8

因此,如果客户选择选项2和选项4,那么存储在数据库中的值将是2 + 8,即:10,如果客户选择选项1、选项4和选项8,则存储在数据库中的值将是1 + 4 + 8,即13。

另外,当我从 mysql 查询时,我可以使用

Select * from option_table where (option & 4)=4;

如果我想检索选择 option3 的行。

但由于某种原因,我无法使用这种方法,或者只是说我需要知道将这些多个值存储在单列中的下一个最佳选择是什么?


另一种方法是素数相乘。要进行选择,您需要选择列值中素数的模为 0 的列。

Example:

值1:2
值 2:3
值 3:5
值 4:7

值 2 和 3 将为 3*5 = 15
值 1、2、3、4 将为 2*3*5*7 = 210

要获取值 1 所在的行,请选择 wherevalue % 2 == 0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按位运算的替代方法 的相关文章

  • 插入值数组

    我有一个具有可变数量值的数组 除了内部带有查询的循环之外 是否有更有效或更好的方法将它们插入到我的数据库中 At 这个网站 http www desilva biz mysql insert html 有一个很好的 MySQL 多插入查询示
  • MongoDB 聚合查询与 MySQL SELECT field1 FROM 表

    我对 MongoDB 完全陌生 想要比较 NoSQL 数据模型相对于关系数据库对应部分的查询性能 我将其写入 MongoDB shell Make 10 businesses Each business has 10 locations E
  • SQL Select 使某个值仅出现一次

    对于那些一直在这个 Twitter 克隆上帮助我的人 谢谢你们 在您的帮助下 我已经成功地完成了大部分工作 现在终于完成了关注者功能的最后一步 现在 我有一个包含以下字段的数据集 用户名 推文 日期 数据示例可能如下所示 Username
  • mysql中更新查询中的多个set和where子句

    我认为这是不可能的 因为我找不到任何东西 但我想我会在这里检查一下 以防我没有寻找正确的东西 我的数据库中有一个设置表 其中有两列 第一列是设置名称 第二列是值 我需要同时更新所有这些 我想看看是否有一种方法可以在一个查询的同时更新这些值
  • MySQL 中复制一条记录

    我有一个表 我想复制表中的特定行 我知道这不是最好的方法 但我们正在寻找快速解决方案 这比我最初想象的要难 我需要做的就是将整个记录复制到 MySql 中自动增量表中的新记录 而不需要指定每个字段 这是因为该表将来可能会发生变化 并且可能会
  • 这段php代码安全吗?

    我知道我应该使用准备好的语句 但我的下一个项目将使用准备好的语句 我只需要完成这个简单的小应用程序 所以我的问题是 以下代码片段安全吗 我使用了 htmlentities 以及 mysql real escape string 因为我认为这
  • 将数组内爆为来自 mysql 查询的逗号分隔字符串

    在过去的 1 1 2 天里 我一直在尝试将 16 行 id 存储到一个字符串中 并用逗号分隔每个 id 我得到的数组来自 MySQL 我得到的错误是 implode 函数 传递了无效参数 str array string while row
  • 如何在 mysql 正则表达式中匹配大写 ÅäÖ

    当我在 MySQL 中进行 REGEXP 比较时 我得到了瑞典字符大写版本的一些奇怪结果 我正在使用 utf8 swedish ci 排序规则 我想查找大写单词 SELECT ster REGEXP BINARY A Z a z 应该返回
  • 仅从 MySQL 中的日期时间 (YYYY-MM-DD HH:MM:SS) 中选择不同的日期

    执行此命令会带来以下结果 所有列中的所有日期 因此它本质上与 SELECT date 执行相同的操作 没有不同 SELECT DISTINCT date FROM daily ORDER BY date DESC 2013 02 12 16
  • NodeJS:MySQL 有时会引发 ETIMEDOUT 错误

    我目前正在使用 NodeJS 开发一个应用程序 然而 经常服务器抛出这个错误 我无法与mysql交互 Error read ETIMEDOUT code ETIMEDOUT errno ETIMEDOUT syscall read fata
  • 将文件保存为 MYSQL 数据库中的 blob 或文件路径

    我知道这些问题是常见问题之一 但我需要您针对具体案例提供帮助 我正在开发一个应用程序 其中一些用户可以添加订单 一些用户可以执行这些订单 这些订单非常具体 因此只有有限数量的用户可以添加它们 然后 为每个订单生成三个文档 每个文档的大小不超
  • 将数据导入 MySQL Workbench

    我有一个包含 6 个表的数据库 我想将这些表导入到existingMySQL Workbench 中的数据库 我使用 phpMyAdmin 将数据库导出到 sql文件 并使用 数据导入 恢复 按钮将其导入到 MySQL Workbench
  • 如何在MySQL中使用数字字符串的比较运算符?

    我有一个员工表 有类似领域的经验VARCHAR类型 此字段结合了用短划线 分隔的总年份和总月份 因此我必须按年份过滤具有 3 年以上经验的经验 我的表结构 所以现在我必须获得3年以上经验的id 我尝试如下 SELECT FROM emplo
  • 如何使用 zend paginate 而不加载数据库的所有结果

    所以我认为 zend paginate 工作的方式是 paginator Zend Paginator factory results paginator gt setItemCountPerPage itemCount paginator
  • mysql 时钟

    我有一个包含以下元素的时钟表 id pk action emp id fk time 如果我通过了 如何选择最新的动作emp id到查询 id emp id action current time 1 1 clockin 2012 01 2
  • 创建前判断MySQL表索引是否存在

    我们系统的自动数据库迁移过程涉及运行包含新表定义及其附带索引的 sql 脚本 仅当这些表和索引尚不存在时 我才需要能够创建它们 表是通过使用 IF NOT EXISTS 来处理的 但创建索引时不存在这样的语法 我尝试编写一个存储过程 如下所
  • SQL 连接中的多个条件

    如何指定多个条件SQL加入 我知道A key B key除此之外是强制性的 以下对于指定多个条件是否正确SQL ON A key B key and or cond1 and or cond2 etc OR ON A key B key w
  • 如何使用过程更改列的默认值

    这是我当前的 SQL 的样子 DELIMITER CREATE PROCEDURE updateDefaultUserRole IN rid in INT BEGIN ALTER TABLE users MODIFY rid INT 255
  • 从 Inno Setup 项目内部调用 MySQL

    我正在为一些使用 MySQL 的软件编写安装程序 我正在尝试运行 sql用于在安装时设置数据库的脚本 唉 我目前在执行它时遇到了很大的问题 这个问题似乎是由于这样一个事实而产生的 当你设置一条通往 sql文件内的 execute SOURC
  • mysql 查询从给定的表结构创建 SEO 友好的 url

    我正在尝试使用下表创建 SEO 友好的 URL 类别表 http sqlfiddle com 2 c474a 4 页表 http sqlfiddle com 2 c474a 5 我正在尝试编写一个 mysql 查询 该查询将使用产生以下输出

随机推荐