Tra*_*Guy 7 javascript mysql node.js
我工作的项目切换到了MySQL.我们使用的密钥是UUID字符串(如43d597d7-2323-325a-90fc-21fa5947b9f3),但数据库字段(而不是字符串)被定义为二进制(16) - 16字节无符号二进制.
我知道UUID基本上是一个16字节的二进制文件,但我不知道如何从/转换为二进制数.
我正在使用node-mysql来访问数据库,我尝试使用node-uuid来解析UUID,但这会产生一个整数数组.我也尝试过使用Node的缓冲区,但这只会产生一个缓冲区对象.
如何将UUID字符串转换为适合该字段?如何将我从该字段读取的值转换为UUID?
由于时间不够,我将粘贴提供有效结果的评论并稍后修改答案,使其更清晰。
是的,如果您UUID 43d597d7-2323-325a-90fc-21fa5947b9f3的 JS 应用程序中已经有该字符串格式,您可以将以下查询发送到 MySQL:
SELECT col FROM table WHERE uuid_col = UNHEX(REPLACE('43d597d7-2323-325a-90fc-21fa5947b9f3', '-', ''));
如果要提取数据并具有可读格式的 UUID,则必须将其转换为十六进制表示法。
SELECT HEX(uuid_col) FROM table;
那个会给你没有破折号的UUID。node-uuid.parse如果你给它不带破折号的十六进制字符串,该方法似乎有效。