我有一张桌子,像这样:
------------------------------
Test_Id Test_data
(String) (blob)
------------------------------我想要一个查询来检索匹配Test_data的所有Test_Id。
实现如下操作: select * from test_table where Test_data = blobObject;
我们如何才能做到这一点??
发布于 2010-08-24 02:16:00
首先:在MySQL中没有字符串这样的东西。仅char/varchar/text。
select * from test_table where Test_data = CAST( blobObject AS CHAR );更好的方法可能是将字符串转换为二进制字符串,但如果您期望字符串比较行为,这可能无法给出正确的比较。
发布于 2016-06-22 00:06:26
您可以使用散列函数,如MD5
SELECT * FROM example_table WHERE MD5(blob_column) = 'a6a7c0ce5a93f77cf3be0980da5f7da3';发布于 2013-11-12 08:34:52
MySQL具有可以存储二进制数据的数据类型。不仅是char/varchar/text,还有BINARY/VARBINARY/BLOB。
请参阅http://dev.mysql.com/doc/refman/5.5/en/blob.html
它的用法和普通的字符串类型一样简单。但是,转义是必需的。并且必须指定查询长度,因为二进制数据的内容中可能包含空字符。
在MySQL 3.23 (我猜)之前,只有mysql_query()和mysql_escape_string()。这些函数没有指定查询长度的功能。在MySQL中引入BLOB之后,支持mysql_real_query()和mysql_real_escape_string()。
我给你找了一些例子。愿此链接对您有所帮助!
http://zetcode.com/db/mysqlc/ http://bytes.com/topic/c/answers/558973-c-client-load-binary-data-mysql
https://stackoverflow.com/questions/3546552
复制相似问题