首页 > 解决方案 > uuid 到 varbinary 的 where 条件

问题描述

我有一个使用 Sequelize 和 MySQL 的项目。我可以在我的 sequelize.define 调用中使用以下语法将 uuid 数据保存到数据库中:

exployeeId: {
    primaryKey: true,
        allowNull: false,
        type: Sequelize.UUID,
        defaultValue: Sequelize.UUIDV4,
        validate: {
        notNull: true
    }
}

这有效,数据保存到数据库中设置为 varbinary(36) 的列中。当我需要查询该字段时,就会出现问题。我知道 MySQL 具有将二进制转换为 uuid 并返回的内置函数,但是应该如何从 sequelize 中处理呢?

我尝试使用以下命令将 uuid 字符串转换为数组 Array.from(uuid.parse(id, new Buffer(16)))

我还尝试使用以下方法将其转换为二进制字符串:

parseInt(Buffer.from(id, 'base64').toString('hex'), 16).toString(2)

我也尝试了十六进制:

Buffer.from(uuid.parse(id, new Buffer(16)), 'base64').toString('hex')

当然,到目前为止,我还不需要使用二进制字段,所以这是一个新领域。

标签: mysqlnode.jssequelize.jsuuid

解决方案


推荐阅读