问题标签 [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.
mysql - 无法为 tinyint 和 varchar 字段更新为默认值 null 和空字符串
我有以下表格架构 -
对于现有记录,字段 pre_notif_action 和 pre_notif_interval 中的值分别为“predeactivate”和 45 -
结果 -
当我尝试编辑时,我得到非零影响的行 -
结果 -
但是,当我选择 -
我得到这个输出 -
我该如何解决这个问题?
mysql - 使用 UNION 更新视图将 TINYINT 更改为 BIGINT
我正在通过 向视图添加信息UNION
。我目前在由 表示的表中有布尔值TINYINT
。我需要将这些列维护为TINYINT
. 中的以下信息UNION
将数据类型更改为BIGINT
:
显然,MYSQLCAST()
不会转换为TINYINT
. 如何保留TINYINT
原始视图?
mysql - 在 MYSQL 中将文本转换为 tinyint
到目前为止,我知道BOOLEAN
mysql 中没有类型,并且在内部它转换为tinyint(1)
数据类型为布尔值时。但我也遇到了tinyint
没有被处理CAST
或CONVERT
功能。
所以基本上我的问题是有没有任何直接的方法可以将数据类型转换为 TINYINT(1),就像它可以处理任何其他数据(如 DATE)一样。
例子 :
那么我怎样才能在tinyint(1)
不改变表格的情况下简单地将类型转换为..
sql-server - INSERT 语句 - SQL 服务器 - 错误 -Nvarchar 值 '2020' 溢出 TINYINT 列
尝试将 Year 的值(即 2020)插入数据类型为 TINYINT 的列中,这是不可能的,因为 TINYINT 的存储范围为 0-255。如果我想存储值 2020 而不使用更大的整数列(即不将数据类型从 TINYINT 更改为 INT、BIGINT 等),是否有解决方法/解决方案(使用 Convert/Cast 或任何其他可能的方式)我正在使用SQL 服务器管理工作室。请帮忙。
mysql - TINYINT 列上的 MySQL 索引:为什么检查 '= 0' 和检查 'is false' 之间有区别?
MySQL 为查询提供不同的执行计划,具体取决于我检查索引 TINYINT 字段是 'is false' 还是 '= 0'。该表的名称是ordini (意思是' shipments '),我希望 MySQL 使用的索引是 shippinglistrequest
SHOW CREATE ordini
(为简单起见,我省略了大多数列和索引):
查询1:
Query2(更改:isEsportatoSAM 为 false):
Query3(更改:isEsportatoSAM = 0 和 isAnnullato 为 false):
我的猜测是:
Query1将正确利用 shippinglistrequest 索引。
Query2不能在第一列之外使用它,因为我将 isEsportatoSAM 与 false 进行比较(但为什么?该列承认空值的事实是否有任何相关性?),因此选择了不同的索引。
Query3将使用索引直到(并包括)第三列,但由于“为假”比较而不再使用,这就是 ref 列中三个“const”的原因,这就是连接类型为“ref”的原因而不是“范围”(它没有到达索引的日期范围部分)。这种解释正确吗?
谁能帮我解决这些问题?
PS:MySQL版本为5.5.56
PS2:从设计的角度来看,我知道在这些 tinyint 列中允许空值是没有意义的(我没有设计这个系统)。
sql-server - 在 MS SQL Server 上存储“签名”TINYINT 的最佳方式?
我需要在 SQL Server之间-255
和上存储一个值。255
我正在寻找SELECT
在大表(+5,000,000 行)上获取这些值的最快方法,并且每毫秒都很重要。请假设结构、索引和查询已经正确设计。
我知道我可以使用一个SMALLINT
使用 2 个字节并由实现签名的。但由于我的主要目标是SELECT
性能,我考虑使用一个TINYINT
字段作为原始值,并使用一个BIT
字段将值标记为负数或正数。但是我的 C 低级背景让我认为BIT
实际上使用 1 个字节来存储和/或处理。在这里阅读答案(TINYINT vs Nullable BIT performance in MS SQL Server)后,我的怀疑似乎是正确的。
因此,为了更好地总结和定义标题上的“最佳”,我的问题是:
使用 a
TINYINT
和 aBIT
pair 字段将使用/处理 2bytes 或 1byte + 1bit 什么时候SELECTing
?我不是在问存储,因为即使在大桌子上,差异也可以忽略不计(如果我错了,请纠正我)。如果一个
BIT
字段在执行进程时使用 1 字节,那么在2 字节 和一对已经使用 2 字节并由实现签名的字段SELECT
之间会有任何性能提升吗?SELECTing
TINYINT
BIT
SMALLINT
TINYINT
如果是,并且使用and对实际上有性能增益BIT
,则可以对其进行测量以精确评估性能增益是否值得使用TINYINT
andBIT
对的麻烦,而不是仅使用 a 的更好设计SMALLINT
?
注 1:服务器是 Microsoft SQL Server 2019 Datacenter
注 2:问题是关于 SQL Server 选择这些值。它不会用于 SQL Server 上的任何聚合、WHERE 或任何其他操作。
注意 3:该值不会用作 INDEX 的键。它只会包含在适当的索引/索引中。
注意 4:我将来可能需要的参数支持超出 -255 - 255 范围的值是有效的,但在这种情况下不适用。在这种情况下,我永远不需要它。如果有这种可能性,我无论如何都会使用“SMALLINT”,因为准备好支持这个值是有意义的。
注意 5:已经读过这个 SO 问题:([在 SQL Server 中 BIT 字段比 int 字段快吗?][2]),但它只将单个 `BIT` 与`INT`(4字节)进行比较,并且接受的答案没有不提供任何有形的论据。
mysql - MacOS MySQL_8的where子句中TINYINT UNSIGNED数据列不能减
以下是使用 MacOS 运行的 MySQL(8.0.x) 中的数据:
当我使用下面的 where 子句进行查询时,一切都很好:
但是,当我减去一个可能大于某些rentPayDay 值的值时,如下所示:
事情出错了:
有人对此有任何想法吗?为什么 TINYINT 数据不能在 where 子句中减去更大的数值?
mysql - How restrict mysql tiny-int to accept just integer
Im trying to get eeror about invalid data for a query but it seems mysql accept strings as tiney in queries and set 0 instead of returning any error.
So how can I restrict it to just accept integers.
Thanks in advance.