как запросить данные BLOB-объектов - PullRequest
1 голос
/ 23 августа 2010

У меня есть таблица как:

------------------------------
Test_Id           Test_data
(String)          (blob)
------------------------------

Я хочу, чтобы запрос извлек все Test_Id для соответствующих Test_data.

Для достижения чего-то подобного: выберите * из test_table где Test_data = blobObject;

Как мы можем сделать выше ??

Ответы [ 3 ]

5 голосов
/ 23 августа 2010

Во-первых: в MySQL нет такой вещи как строка. Только char / varchar / text.

Ну, вы можете использовать его как char для сравнения:

select * from test_table where Test_data = CAST( blobObject AS CHAR );

что, вероятно, лучше - преобразовать вашу строку в двоичную строку, но это может не дать вам правильного сравнения, если вы ожидаете поведения сравнения строк ... лучше всего, вы посмотрите здесь на функции char:

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

1 голос
/ 12 ноября 2013

MySQL имеет типы данных, которые могут хранить двоичные данные. Не только char / varchar / text, но также BINARY / VARBINARY / BLOB.

См. http://dev.mysql.com/doc/refman/5.5/en/blob.html

И его использование так же просто, как обычный тип строки. Но побег необходим. и длина запроса должна быть указана, потому что двоичные данные могут содержать в своем содержимом символ NULL.

До MySQL 3.23 (наверное), были только mysql_query (), mysql_escape_string (). Эти функции не имеют возможности указать длину запроса. после того, как BLOB был введен в MySQL, 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

0 голосов
/ 21 июня 2016

Вы можете использовать хеш-функцию, такую ​​как MD5

SELECT * FROM example_table WHERE MD5(blob_column) = 'a6a7c0ce5a93f77cf3be0980da5f7da3';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...