0

我刚刚从 MySQL 5.7 升级到 MariaDB 10.3,一个功能差异让我很困惑。我有一个以下类型的索引字段:

UserID | int(9) unsigned zerofill

如果我执行以下查询:

SELECT UserID FROM User WHERE UserID='000000003';

我得到:

+-----------+
| UserID    |
+-----------+
| 000000003 |
+-----------+

如果我使用 Node.js 中的 MariaDB 回调连接器,我会得到以下信息:

[
        {
            "UserID": 3
        }
]

如何防止 MariaDB 连接器/Node.js 回调 API 从索引中去除前导零?现在我知道我可以在我的所有查询之后在我的 API 中填充索引引用的每个实例,但这似乎......效率低下。

有没有更好的办法?谢谢。

4

1 回答 1

3

node.js 驱动程序自动评估值类型。由于这是一个 int,因此 3 是预期值。

如果你明确想要一个字符串,你可以通过 sql 来判断,比如查询 select cast (UserID AS CHAR) as UserID from User WHERE UserID='000000003';

这将返回

[
        {
            "UserID": '000000003'
        }
]
于 2021-04-26T08:56:38.160 回答