Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何查询blob数据_Mysql_Database - Fatal编程技术网

Mysql 如何查询blob数据

Mysql 如何查询blob数据,mysql,database,Mysql,Database,我有一张像这样的桌子: ------------------------------ Test_Id Test_data (String) (blob) ------------------------------ 我需要一个查询来检索匹配测试数据的所有测试Id 要实现如下操作:从test_表中选择*,其中test_data=blobobObject 我们怎么做呢?首先:MySQL中没有字符串这样的东西。仅char/varchar/text 您可以将其转换

我有一张像这样的桌子:

------------------------------
Test_Id           Test_data
(String)          (blob)
------------------------------
我需要一个查询来检索匹配测试数据的所有测试Id

要实现如下操作:从test_表中选择*,其中test_data=blobobObject


我们怎么做呢?

首先:MySQL中没有字符串这样的东西。仅char/varchar/text

您可以将其转换为char进行比较,如下所示:

select * from test_table where Test_data = CAST( blobObject AS CHAR );
可能更好的方法是将字符串转换为二进制字符串,但如果您期望字符串比较行为,则这可能无法提供正确的比较。。。您最好看看这里的char函数:


MySQL具有可以存储二进制数据的数据类型。不仅是char/varchar/text,还有BINARY/VARBINARY/BLOB

它的用法和普通的字符串类型一样简单。但是,逃跑是必须的。并且必须指定查询长度,因为二进制数据的内容中可能包含空字符

在MySQL 3.23之前(我猜),只有MySQL\u query()、MySQL\u escape\u string()。这些函数没有指定查询长度的功能。MySQL引入BLOB后,支持MySQL\u real\u query()和MySQL\u real\u escape\u string()

我为你找到了一些例子。愿这些链接对你有所帮助


您可以使用诸如MD5之类的哈希函数

SELECT * FROM example_table WHERE MD5(blob_column) = 'a6a7c0ce5a93f77cf3be0980da5f7da3';

你能详细说明一下你正在比较的 BoBBUbjs<代码>吗?你如何知道一个C++语言的字符串长度?