当前位置: 首页 > 面试题库 >

如何在MySQL 5.1中将int转换为一点?

聂宜
2023-03-14
问题内容

我正在从SQL Server过渡到MySQL 5.1,并且似乎在尝试使用select语句创建表时遇到麻烦,因此该列有点。

理想情况下,以下方法将起作用:

CREATE TABLE myNewTable AS
SELECT cast(myIntThatIsZeroOrOne as bit) AS myBit
FROM myOldtable

但是,sql对转换有点不满意。我怎样才能告诉它选择一个int列(我知道它只有0和1s)?


问题答案:

你不能!

CAST和CONVERT仅可用于:

  • BINARY [(N)]
  • 字符[(N)]
  • 日期
  • 约会时间
  • DECIMAL [(M [,D])]
  • 签名[INTEGER]
  • 时间
  • 未签名的[INTEGER]

没有空间:BIT,BITINT,TINYINT,MEDIUMINT,BIGINT,SMALLINT,…

但是,您可以创建自己的函数cast_to_bit(n):

DELIMITER $$

CREATE FUNCTION cast_to_bit (N INT) RETURNS bit(1)
BEGIN
    RETURN N;
END

要自己尝试,可以创建具有以下转换的视图:

CREATE VIEW view_bit AS
    SELECT
        cast_to_bit(0),
        cast_to_bit(1),
        cast_to_bit(FALSE),
        cast_to_bit(TRUE),
        cast_to_bit(b'0'),
        cast_to_bit(b'1'),
        cast_to_bit(2=3),
        cast_to_bit(2=2)

…然后描述它!

DESCRIBE view_bit;

塔达!现在每个人都是位(1)!!!



 类似资料:
  • 问题内容: 我是Java的新手,想知道double转换为int cast如何工作吗?我知道,只需将低32位转换为int就很容易了,但是将double(64位)转换为int(32位)呢?来自二进制的double中的那64位是Double- precision浮点格式(Mantissa),那么它如何在内部转换为int? 问题答案: 所有这些都记录在JLS的5.1.3节中。 第一步,将浮点数转换为lon

  • 问题内容: 我一直在这里找到问题,并且Google的人们遇到了麻烦,而不是遇到了其他麻烦。但我敢肯定,我不是以前已经从去碰到这种情况的唯一一个到。 我发现的唯一其他答案是“首先将其设置为Long”,这实际上并没有解决这个问题。 我最初尝试投射,但得到了“ ” 如您所料,我有点困惑,我被困住了,因为有些内容以形式出现,而我要存储其信息的实体要求序列号为Long。 问题答案: 请注意,强制转换为和强制

  • 问题内容: (我是Java编程的新手) 我有例如: 我需要在撇号中得到数字9本身。我尝试执行以下操作 但这没用。 那么我该怎么做才能得到撇号呢? 问题答案: ASCII表的排列方式是使字符的值比的值大九;字符的值比的值大8 ; 等等。 因此,您可以通过减去以获得十进制数字char的int值。

  • 问题内容: 如何转换成? 当然,除了循环地逐项执行之外,我对任何其他答案都感兴趣。但是,如果没有其他答案,我将选择一个作为最佳答案,以证明此功能不是Java的一部分。 问题答案: 没有捷径可转换为因为它不会处理拳击,只会创建你不想要的。你必须制作一个实用程序方法。

  • 问题内容: 我有一个长度为4的大型数据集,我想计算4个整数的每种特定组合出现的次数。这与计算文档中的单词频率非常相似。 我想创建一个, 将每个映射到正在运行的计数的列表,但是列表不使用原始类型。 所以我做了 我的数据存储为一个,所以我的循环应该像 我不确定在注释中需要什么代码才能完成将转换int[]为的工作Integer[]。也许我从根本上对正确的方法感到困惑。 问题答案: 使用Java 8,可以

  • 问题内容: 在围棋,什么是转换的最佳策略来?我很难比较两者 在下一行 问题答案: 您将其转换为类型“转换” 比较值时,您始终希望将较小的类型转换为较大的类型。转换为其他方式可能会截断该值: 或者,将 值转换为,可以使用 如果系统上类型的最大值溢出,则将无法正确执行。