问题标签 [tinyint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
936 浏览

mysql - 如何防止 gorm 将自定义整数类型转换为字符串?

我在将 gorm 与具有整数属性的自定义类型一起使用时遇到了麻烦。Gorm 倾向于为我将整数值转换为字符串。有两个不同的问题:

问题1:

我有一个自定义类型定义如下:

然后我有一个Client这样定义的 ORM 结构:

调用时db.Create(&client),gorm 会自动调用String()on 方法ClientType,并导致 MySQL 中的数据类型不匹配,我打算将其存储ClientTypeTINYINT名为client_type.

问题2:

所以我想如果我无法弄清楚如何覆盖方法的自动调用String(),我只是将方法重命名为ToString()并在需要时调用它。现在 gorm 不能再调用它,而是将整数值转换为数字字符串。所以USER,0现在将'0'在生成的 SQL 语句中变为 ,并且SERVER将变为'1',尽管 MySQL 能够将字符串转换回整数。

我仍然想知道我做错了什么让 gorm 认为我想要这些转换。

  1. 有没有办法覆盖的调用String(),所以我仍然可以按照惯例命名该方法?
  2. 是否使用uint8gorm 将 int 转换为字符串,因为使用 uint64 的其他数值(ClientID 和 UserID)不受该问题的影响?是不是某种数据库模式的缓存让 gorm 记住了 client_type 曾经是ENUM('User', 'Service')列的旧模式?
0 投票
1 回答
134 浏览

javascript - 如何在快递中将 TINYINT(1) 转换为 BOOLEAN?

我的 MySQL 数据库中有一些列 (infectedabsence) 存储为TINYINT(1).

当我做一个简单的

在我的后端和

在我的 ReactJS 前端,我无法执行以下操作:

仅有的

正在工作中。

由于使用users.filter((u) => u.infected);对我来说更直观,我想知道,如何在最佳实践中处理这个问题?

  1. 我需要以另一种类型存储我的值吗?
  2. 我需要以不同的方式选择值吗?
  3. 查询后是否需要将值从 1 转换为 TRUE 和从 0 转换为 FALSE?
  4. 我需要在获取请求后翻译前端中的值吗?

我尽量避免使用 4. 除非这不是最好的交易,因为我的前端已经期望到处都是布尔值(我将数据库切换到 MySQL)。

0 投票
0 回答
13 浏览

mysql - MySQL 8.x:无符号属性覆盖字段长度

查看整数值。似乎设置 Unsigned 属性会覆盖字段长度。

传统上,MYSQL 将 BOOLEAN 别名转换为 TINYINT(1)。根据 inter-webs,从 MySQL 8.0.17 开始,整数数据类型的显示宽度规范已被弃用。有两个例外,其中包括: TINYINT(1) 但是,有一个错误(已知或未知 IDK),当我在任何 TINYINT 值上设置 UNSIGNED 时,显示长度会下降。

重现步骤:

  1. 创建一个表,其中包含一个旨在用作 BOOLEAN 的字段;

    CREATE TABLE users( idint unsigned NOT NULL AUTO_INCREMENT, user_namevarchar(50) NOT NULL, passwordvarchar(255) NOT NULL, is_activetinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY ( id), ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

  2. 观察 TINYINT(1) 上的显示长度实际上已设置。

  3. 更改表以使 is_active 成为 UNSIGNED 值:

    ALTER TABLE users CHANGE COLUMN is_active is_activeTINYINT(1) UNSIGNED NOT NULL DEFAULT '1' ;

  4. 观察到 TINYINT 不再有显示长度。

  5. 项目清单

预期结果:

我认为“BOOLEAN”的正确字段属性将是无符号的,因为您的选项将是 0 或 1。不是否定的。因此,我希望 TINYINT(1) 的 UNSIGNED 行为与签名行为相同,并且将设置/保留字段显示长度。

问题:

有没有其他人遇到过这种行为?关于变通的任何想法?现在我坚持使用签名的 tinyint ......

0 投票
2 回答
33 浏览

mysql - 有没有办法对 MYSQL 中的 TINYINT(1) 列进行 AND 操作?

我得到了下表,如果所有行都有 disponibilidad = 1,我需要返回 1

示例表

以下查询工作得很好,但我正在寻找一种更有效的方法。

询问:

结果:

结果

正如我所看到的,使用“AND”会更有效率,因为它不必执行 AVG()。

0 投票
2 回答
76 浏览

c# - 如何从字节转换?到字节[]?

我正在尝试转换从数据库查询接收到的字节。

EF Core 返回 nullable tinyintas byte?,我需要将其转换为decimal.

有没有办法OnModelCreating用模型构建器转换它DbContext

我对 EF Core 不是很熟悉。到目前为止,我只设法做到了这一点 - 在我已经将我的对象放入处理程序之后:

0 投票
2 回答
40 浏览

mysql - tinyint(M) 在 MySQL 中有什么用处?

这更像是一个学术问题。在 MySQL 数据库中,我知道 tinyint(M) 和它与 tinyint(1) 的区别已经在这个论坛上讨论过,但我想知道别的。列“REVIEWED TINYINT(5) 是否可用于在前端表单中存储 5 个不同的布尔复选框的值?我正在考虑将其视为一个数组。如果是这样,它们将如何被引用?会有什么像 REVIEWED(3) 或 REVIEWED[3] 一样可以引用它们的元素?是否有语法来检查它们的所有元素是 1 还是 0(或 null)?