首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL二进制类型表示

问MySQL二进制类型表示
EN

Stack Overflow用户
提问于 2017-10-05 19:44:47
回答 2查看 803关注 0票数 0

有一个类型为MySQL的BINARY查询参数。MySQL中的二进制值可以像x'1f7a8e'一样表示。但是,当将MySqlDbType.Binary类型的参数添加到MySqlCommand时,查询是由表示为_binary '1f7a8e'的值组成的,这将导致查询找不到该行。下面您可以看到如何使用MySQL API的代码示例。

代码语言:javascript
复制
var baz = "1f7a8e";
var cmd = new MySqlCommand("SELECT foo FROM bar WHERE baz=@baz");
cmd.Parameters.Add("@baz", MySqlDbType.Binary).Value = baz;

// Execute query and read result

使用二进制值作为参数的正确方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-05 20:04:05

我试图将Guid存储为BINARY(16)。

首先,我尝试了guid.ToByteArray(),但它不起作用。然后我尝试了guid.ToString().Replace("-", ""),它也失败了。

多亏了@daniel,然后我尝试了guid.ToString().Replace("-", ""),然后将得到的十六进制数字转换成一个字节数组(如描述的here),这是可行的。

票数 0
EN

Stack Overflow用户

发布于 2017-10-05 21:58:58

您可以将GUID存储为Binary (16)

代码语言:javascript
复制
UNHEX(REPLACE(@baz, "-","")) 

这将返回二进制(16)。

并选择

代码语言:javascript
复制
SELECT * FROM mytable WHERE HEX(baz) = @baz
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46593651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档