使用哪种 MySQL 数据类型来存储布尔值

2023-12-10

由于MySQL似乎没有任何“布尔”数据类型,那么您“滥用”哪种数据类型来在MySQL中存储真/假信息?

特别是在写入和读取 PHP 脚本的情况下。

随着时间的推移,我使用并看到了几种方法:

  • tinyint、包含值 0/1 的 varchar 字段,
  • 包含字符串“0”/“1”或“true”/“false”的 varchar 字段
  • 最后是包含两个选项“true”/“false”的枚举字段。

以上似乎都不是最佳的。我更喜欢tinyint 0/1 变体,因为PHP 中的自动类型转换为我提供了相当简单的布尔值。

那么您使用哪种数据类型?是否有一种为布尔值设计的类型被我忽略了?您认为使用一种或另一种类型有什么优点/缺点吗?


对于 MySQL 5.0.3 及更高版本,您可以使用BIT。手册说:

从 MySQL 5.0.3 开始,BIT 数据类型用于存储位字段 价值观。 BIT(M) 类型允许存储 M 位值。 M可范围 从 1 到 64。

否则,根据MySQL手册你可以使用BOOL or BOOLEAN,目前是别名tinyint(1):

Bool、Boolean:这些类型是同义词TINYINT(1).值为 零被认为是错误的。非零 值被认为是真实的。

MySQL 还指出:

我们打算实现完整的布尔值 类型处理,按照 标准 SQL,未来的 MySQL 发布。

参考:http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html

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

使用哪种 MySQL 数据类型来存储布尔值 的相关文章

  • 在php中循环多维数组并执行mysql插入(股票数据)

    我有一个多维数组 我希望循环遍历它并为数组中的值执行 mysql 数据库插入 我需要插入到 sql 查询中的数组值是 candles 0 complete candles 0 volume candles 0 mid h candles 0
  • Mysql - 如何搜索26条以字母开头的记录?

    基本上 我正在尝试创建一个查询 该查询可以根据英语字母表中的字母 26 个字母 从表中检索 26 个单词 所以 苹果 香蕉 椰子 等等 我一直在使用 like a 所以 SELECT from word WHERE word name li
  • 将波斯语字符串发送到mysql

    我正在尝试发送Persian字符串到mysql数据库 但它将数据保存为这样的 D8 AC D8 AF DB 8C D8 AF 英文字符串没有问题 var new this val ajax url url new type GET succ
  • 为 Codeigniter 中的 foreach() 提供的参数无效

    我收到错误消息 我的视图中 foreach 的参数无效 我想显示 mysql 表中的所有条目 但我不断收到错误消息 我是 Codeigniter 的新手 无法真正弄清楚如何解决这个问题 代码如下 我的模型 display branch ph
  • InnoDB vs. MyISAM 插入查询时间

    我有一个大型 MySQL 表 约 1000 万行 6 5G 用于读取和写入 它是MyISAM 由于MyISAM 的所有表写入锁 我获得了很多锁 我决定尝试迁移到 InnoDB 推荐用于读 写表 它只锁定写入时的特定行 转换后 我测试了插入语
  • mysql utf8_general_ci 区分大小写

    我有一个 mysql 数据库 我使用 utf8 general ci 不区分大小写 在我的表中 我有一些列 例如 ID 和区分大小写的数据 例如 iSZ6fX 或 AscSc2 为了区分大写和小写 最好只在这些列上设置 utf8 bin 如
  • 我是否应该标准化我的数据库?

    在设计数据库 例如 MySQL 的模式时 会出现是否完全规范化表的问题 一方面 连接 以及外键约束等 非常慢 另一方面 您会获得冗余数据和潜在的不一致 最后优化 是正确的方法吗 即创建一个按书本规范化的数据库 然后查看可以对哪些内容进行非规
  • 我不小心锁定了 MySQL 的 root

    我在 OS X 上使用 MySQL 并使用删除了所有 root 用户DROP USER 然后我又添加了其中一些并做了GRANT ALL on to root localhost 然后在验证确实是的之后注销 我可以登录并执行一些特权操作 不幸
  • 浏览器关闭后从数据库中删除

    我正在开发一个电子商务应用程序 但问题是 当用户将产品添加到购物车并在订购前关闭浏览器时 购物车会带走所有产品 所有购物车项目都保存在表中 如果用户关闭浏览器而不订购 我只想刷新购物车 您可以使用 Javascript 事件捕获浏览器关闭并
  • 在 MySql 中查找周年纪念日是否在 n 天后到来

    我有一张写有周年纪念日的桌子 我想要一个查询 该查询返回接下来 10 天内即将到来的周年纪念日行 例如 birthdate 1965 10 10 1982 05 25 SELECT birthdate FROM Anniversaries
  • 有没有办法将应用程序上下文与非 Sybase DB 服务器中的数据库连接进行通信(类似于 Sybase 中的 set_appcontext)?

    Sybase 有一种让应用程序进行通信的方法 上下文 数据 http manuals sybase com onlinebooks group as asg1250e sag Generic BookTextView 38861 hf 0
  • 重新排列mysql中的主键

    从MySQL表中删除一些行后如何重新排列主键列值 例如 一个包含 4 行数据的表 主键值为 1 2 3 4 当删除第2行和第3行时 第4行的键值变为2 请帮助我找到解决方案 为什么要这样做 你不需要重新排列您的密钥 因为它只是记录的数字和标
  • 基准测试:PostgreSQL 上的 bigint 与 int

    我想提高数据库性能 在一个项目中 所有表都来自int to bigint 我认为这不仅在存储方面是一个糟糕的选择 因为int需要4 bytes and bigint需要8 bytes 但也与性能有关 所以我创建了一个小表1000万条目 其中
  • 用于分页的php示例脚本[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以建议一个好的分页 php 脚本 其中人们想要分页显示数据库中的大量项目 以下链接可以帮助您
  • MySQL 多个 IN 条件对同一个表进行子查询

    我有多个带有子查询的 IN 条件 SELECT S name S email FROM something S WHERE 1 NOT IN SELECT id FROM tags WHERE somethingId S id AND 2
  • 如何将 MySql 表导出/转储到文本文件中,包括字段名称(也称为标题或列名称)

    在 MySql 的解释器中 很容易将表及其字段名称转储到屏幕上 似乎没有简单的方法可以将表导出到制表符分隔或 CSV 输出文件包括它的列标题 我尝试仅使用 SQL 或 Linux 命令行来完成此操作 而不用其他语言编写程序 谢谢 将查询通过
  • WHERE 子句或 ON 子句中的 INNER JOIN 条件?

    我今天输错了一个查询 但它仍然有效并给出了预期的结果 我的意思是运行这个查询 SELECT e id FROM employees e JOIN users u ON u email e email WHERE u id 139840 但我
  • 无效的 PDO 查询不会返回错误

    下面的第二条 SQL 语句在 phpMyAdmin 中返回错误 SET num 2000040 INSERT INTO artikel artikel nr lieferant nr bezeichnung 1 bezeichnung 1
  • 如何将另一列的整数值添加到日期列?

    我试图将整数添加到日期 但出现以下错误 1064 你的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在第 6 行的 wp OrderDate INTERVAL WPProduct Duration DAY AS
  • 我的数据库有错误

    创建表时如下 create table Ticket ticket id integer not null primary key AirlineName varchar not null CustomerName varchar from

随机推荐

  • 找到点的质心[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有N分 每个点都有 X 和 Y 坐标 我需要找到该点的质心 X 和 Y 你能给我一个算
  • 停止 TextChanged 上的回发

    我在 aspx 页面中有一个文本框 其中附加了一个 TextChanged 事件 我还在文本框中附加了一个验证器 当文本更改时 将触发验证 但如果出现错误 仍会调用 textchanged 事件 您知道如果验证器触发是否可以停止 textc
  • JQuery .load() 使内容在加载后不可点击

    我有一个页面 其中有一个 div 该 div 中的内容由包含页面填充 并且该包含页面正在调用数据库来检索内容 当用户单击 添加任务 按钮时 将进行 ajax 调用以将内容插入数据库 并使用 load 刷新显示所有任务的 div 删除任务 也
  • 如何使用 JavaScript 合并 JSON 对象?

    如何使用普通 不带 jQuery JavaScript 合并 JSON 对象 要求是 转换自 chartData date 2014 05 1 CAT1 0 1 date 2014 05 1 CAT2 0 2 date 2014 05 1
  • 在 Spring 服务类中使用 ConcurentHashMap 和 AtomicInteger 作为实例变量

    我正在尝试在注入控制器的单例 Spring 服务中实现 ConcurentHashMap 的线程安全使用 Service public MyService final ConcurrentMap
  • 标签添加到文本区域中的选定文本

    如何创建一些 javascript 来执行以下操作 当用户单击 BOLD 按钮时 所选文本将被一个 和一个 包围
  • 参数包必须位于参数列表的末尾...何时以及为什么?

    我不明白为什么如果参数列表绑定到一个类 参数包必须位于参数列表的末尾 而如果参数列表是成员方法声明的一部分 则放松约束 换句话说 这个编译 class C template
  • 如何设置 Laravel 的关联位置?

    我使用以下结构来连接表 with attachments offers publisher public function publisher return this gt belongsTo App User user id id 如何加
  • docker容器中的JHipster应用程序无法在主机网络上访问,无法与非主机网络上的其他容器通信

    我正在尝试在 OS X 开发计算机上的 docker 容器中部署 JHipster 微服务和注册表 我或多或少使用 JHipster 提供的默认 docker compose 配置来部署注册表 version 2 services jhip
  • 详细500错误信息,ASP+IIS 7.5

    IIS 7 5 2008rc2 经典 asp 500 错误消息 由于发生内部服务器错误 该页面无法显示 我需要知道如何配置 IIS 以获得更详细的错误 我尝试将 ASP 配置中的所有调试选项设置为 true 但这没有用 谁能帮我 我遇到了同
  • 更改第 2 列中的日期,其中数字与第 3 列不匹配

    我以前尝试过这个 但需要改变方向 我正在更改数字 但发现数字不同后我需要更改日期 我的文本有 3 列 第二列和第三列相似 但偶尔会有 1 4 位数字不匹配 我添加了一个示例 以便您可以看到我在说什么 我已经添加了 substr 命令 但那是
  • .htaccess 删除网址中的问号

    我有一个网站 其网址中有一个我想要重写的查询字符串 网址是domain com profile php user sven我希望它重定向到domain com profile user sven 我创建了一个 htaccess 文件 其规则
  • 除了 Simple Solver 之外,还有什么软件可以求解给定输入/输出的数字电路?

    All 我在这里找到了一个名为 简单求解器 的东西 http home roadrunner com ssolver syn html 你可以在这里下载 http www softpedia com progDownload Simple
  • 一个项目,多个客户。角2

    好吧 我有一个问题 但我似乎找不到答案 假设我有一个项目 x 它将由多个客户端使用 每个客户端都有自己的功能 可以共享或不共享 以及自己的自定义样式表和 html 布局 因此 按照正常的角度 2 单击模式 我想知道这是否可能 Example
  • 在 R v3.5.1 中,是什么导致打印列表的第一个元素用反引号括起来?

    最近我使用 RStudio v1 1 453 在 Windows 10 上将 R 更新到 3 5 1 我感兴趣的是为什么打印列表的第一个元素现在总是用反引号括起来 即使它是没有非法符号的标准名称 例如 a 如本例所示 R 3 5 1 lis
  • 在包含shared_ptr的地图上使用find_if会增加引用计数

    我正在创建一个程序 其中有一个包含shared ptr 的映射 当我尝试在其中找到一个元素时std find if shared ptr的引用计数增加 例子 include
  • IE 中的 jQuery .clone() .html() Bug

    jQuery 1 6 2 中似乎仍然存在一个错误 该错误与 clone 和 html 存在问题 我创建了一个小提琴 http jsfiddle net Vxyu3 12 这应该有助于解释该错误 如果您依次单击这两个链接 在 Firefox
  • Laravel:更新时验证唯一

    我知道这个问题之前已经被问过很多次了 但是没有人解释当你在模型中验证时如何获取 id email gt unique users email address 10 我的验证规则位于模型中 那么如何将记录的 ID 传递给验证规则 这是我的模型
  • Spotify 拼图问题

    我正在尝试解决本文中描述的 最佳之前 Spotify 难题page 基本上 输入三个由斜杠分隔的整数 例如 11 3 4 您应该生成一个具有 2011 03 04 格式的最早可能日期的输出 如果没有可能的日期 则应返回原始字符串 后跟 is
  • 使用哪种 MySQL 数据类型来存储布尔值

    由于MySQL似乎没有任何 布尔 数据类型 那么您 滥用 哪种数据类型来在MySQL中存储真 假信息 特别是在写入和读取 PHP 脚本的情况下 随着时间的推移 我使用并看到了几种方法 tinyint 包含值 0 1 的 varchar 字段