我有一个 MySQL 表,我们称之为Permissions
,带有数字列UserId
和Privilege
. 该UserId
列被认为是十进制值,但Privilege
应该是十六进制值。十六进制值更适合特权代码(因为每个特权位都负责 R、W、X 等标志),这被我们广泛用于INSERT
使用十六进制文字的语句,例如:
INSERT INTO `Permissions` (`UserId`, `Privilege`) VALUES (12, 0x53);
让我们假设3
in0x53
是代表编码特权操作的标志掩码,因此阅读此类INSERT
语句的人可以很容易地理解此权限授予 R(1) 和 W(2) 权限。但是当Permissions
执行对表的查询时,例如在本地 MySQL 客户端中,权限值显示为十进制(请假设SELECT * FROM
):
+--------+-----------+
| UserID | Privilege |
+--------+-----------+
| 12 | 83 |
+--------+-----------+
有没有办法推荐 MySQL 客户端默认在十六进制视图中显示(不作为字符串返回)一些数字列?它可能位于表元数据、嗯、“建议”或客户端配置中的某处——老实说,我对此一无所知。这很有用的另一个原因是,可以使用简单查询,而不是每次调用查询时对某个列应用函数,甚至将结果集列类型从数字更改为字符串。SELECT * FROM
HEX()
HEX()
有任何想法吗?您的帮助将不胜感激。提前致谢。
PS我不确定这个问题是否应该在这里问。如果更好的地方是超级用户或数据库管理员,请迁移。谢谢!