将列的默认显示设置为十六进制格式

bt1cpqcv  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(399)

我正在寻找一种方法来创建一个mysql列 SELECT 语句将自动显示格式为十六进制的任何值:

  1. 1 -> 0x1
  2. 16 -> 0x10

下面是一个基本上实现了这个结果的示例,但问题是任何使用这个数据的用户都必须进行处理(http://sqlfiddle.com/#!9/3bc633/2):
创建数据:

  1. CREATE TABLE t1 (
  2. c1 int
  3. );
  4. INSERT INTO t1 (c1) VALUES
  5. (0x1),
  6. (0x10);

选择数据:

  1. SELECT c1, CONCAT('0x', HEX(c1))
  2. FROM t1;

我想在列或表上设置一个属性,用一个简单的 SELECT c1 .

k75qkfdt

k75qkfdt1#

  1. CREATE TABLE t1 (
  2. c1 int,
  3. c2 varchar(32) GENERATED ALWAYS AS (CONCAT('0x', HEX(c1)))
  4. );
  5. MariaDB [test]> INSERT INTO t1 (c1) VALUES
  6. -> (0x1),
  7. -> (0x10);
  8. Query OK, 2 rows affected (0.14 sec)
  9. Records: 2 Duplicates: 0 Warnings: 0
  10. MariaDB [test]> select * from t1;
  11. +------+------+
  12. | c1 | c2 |
  13. +------+------+
  14. | 1 | 0x1 |
  15. | 16 | 0x10 |
  16. +------+------+
  17. 2 rows in set (0.00 sec)

或者,如果您使用的是旧版本,则可能是

  1. CREATE TABLE t1 (
  2. c1 int,
  3. c2 varchar(32) AS (CONCAT('0x', HEX(c1))) VIRTUAL
  4. );

但同样的原则也适用。

展开查看全部

相关问题