gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:03:27 24 4
gpt4 key购买 nike

我正在寻找创建 MySQL 列的方法,其中 SELECT 语句将自动显示任何十六进制格式的值:

1  -> 0x1
16 -> 0x10

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

创建数据:

CREATE TABLE t1 (
c1 int
);

INSERT INTO t1 (c1) VALUES
(0x1),
(0x10);

选择数据:

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

我想在列或表上设置一个属性,以通过简单的 SELECT c1 实现此结果。

最佳答案

CREATE TABLE t1 (
c1 int,
c2 varchar(32) GENERATED ALWAYS AS (CONCAT('0x', HEX(c1)))
);

MariaDB [test]> INSERT INTO t1 (c1) VALUES
-> (0x1),
-> (0x10);
Query OK, 2 rows affected (0.14 sec)
Records: 2 Duplicates: 0 Warnings: 0

MariaDB [test]> select * from t1;
+------+------+
| c1 | c2 |
+------+------+
| 1 | 0x1 |
| 16 | 0x10 |
+------+------+
2 rows in set (0.00 sec)

或者,如果您使用旧版本,它可能会是

CREATE TABLE t1 (
c1 int,
c2 varchar(32) AS (CONCAT('0x', HEX(c1))) VIRTUAL
);

但同样的原则也适用。

关于mysql - 将列的默认显示设置为十六进制格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48128426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com