comment interroger un blob de données
J'ai une table :
------------------------------
Test_Id Test_data
(String) (blob)
------------------------------
Je veux une requête pour récupérer toutes les Test_Id pour une correspondance Test_data.
Pour obtenir quelque chose comme : select * from test_table où Test_data = blobObject;
Comment pouvons-nous faire de plus ??
- Pouvez-vous donner plus de détails sur
blobObject
que vous comparez
Vous devez vous connecter pour publier un commentaire.
D'abord: il n'y a pas une telle chose comme une chaîne de caractères dans MySQL. Seulement char/varchar/texte.
Ainsi vous pouvez la lancer en tant que char pour cette comparaison:
ce qui est probablement mieux est de convertir votre chaîne une chaîne binaire, mais cela pourrait ne pas vous donner le droit de comparaison, si vous vous attendez à de la comparaison de chaînes de comportement... bien mieux que vous ayez un oeil sur le char fonctions ici:
http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html
MySQL a des types de données qui peuvent stocker des données binaires. Non seulement char/varchar/texte, mais aussi BINAIRE/VARBINARY/BLOB.
Voir http://dev.mysql.com/doc/refman/5.5/en/blob.html
Et son utilisation est aussi simple que de normal type de chaîne. Mais, l'échappement est nécessaire. et la longueur des requêtes est prévu parce que les données binaires peuvent contenir des caractères NULL dans leur contenu.
Avant de MySQL 3.23 (je suppose), Il n'y avait que mysql_query(), mysql_escape_string(). Ceux de la fonction n'a pas de capacité de la spécification de la longueur des requêtes. après BLOB a été introduit dans le serveur MySQL, mysql_real_query() et mysql_real_escape_string() pris en charge.
J'ai trouvé quelques exemples pour vous. Peut ce liens vous aider!
http://zetcode.com/db/mysqlc/
http://bytes.com/topic/c/answers/558973-c-client-load-binary-data-mysql
Vous pouvez utiliser une fonction de hachage telle que MD5