【问题标题】:MySQL: Retrieving all fields SELECT * when one of the fields is binary and needs to HEXMySQL:检索所有字段 SELECT * 当其中一个字段是二进制并且需要十六进制时
【发布时间】:2013-04-16 22:31:18
【问题描述】:

我有一个主 kew,它是一个名为 binid 的字段中的 binary(16) UUID。
我想使用 SELECT 语句获取包含二进制 ID 的 ALL 列。

我知道我可以执行“SELECT * FROM TABLE”,但是如何与 HEX(binid) 结合使用?

这在我获得单个字段时有效:“SELECT HEX(binid) AS binid FROM TABLE”
但我不想提及所有领域(太多)。有没有办法在一个语句中获取 ALL 和 HEX?

PS。我正在创建基于 stackoverflow 问题:How to store uuid as number?

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    选择* 将按原样选择所有字段,而不进行转换。要选择它们以更改其格式,您必须指定要选择的所有字段,并以, 分隔。

    例如:

    SELECT HEX(`binid`) as `bindid`, `name`, FROM_UNIXTIME(`birthday`) as `birthday`, `gender` FROM `table`;
    

    您可以应用任意数量的转换。

    您也可以这样做:

    SELECT HEX(`binid`) as `hexdid`, * FROM `table`;
    

    在这种情况下,结果将具有十六进制格式的binid,名为hexid,还有原始的binid 以及表的其他字段。

    【讨论】:

      【解决方案2】:
      select col1, col2, col3 from table
      

      例如如果表被称为 T 并设置如下:

              T
      =================
      | binid | A | B |
      | 0     | 1 | a |
      | 1     | 2 | b |
      | 10    | 3 | c |
      
      select hex(binid), A, B from table
      

      【讨论】:

      • 我知道但是有没有办法不列出每一列?我在这张表中有数百列。
      【解决方案3】:

      你可以这样做:

      Select *, HEX(binid) as clearBinId from Table

      这将选择所有列(包括 binid)并选择 HEX(binid) 作为名为“clearBinId”的列

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-12
        • 1970-01-01
        • 2014-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-16
        相关资源
        最近更新 更多