SQL Query with binary data (PHP and MySQL)
Note: This addresses binary data, but not encrypted data. See this answer for searching on encrypted data.
Try adding X
, x
or 0x
in front of binary data used for search:
SELECT id FROM test WHERE pid = '0xÞFÈ>ZPÎ×jRZ{æ×';
EDIT: try also this:
SELECT id FROM test WHERE BINARY pid = 'ÞFÈ>ZPÎ×jRZ{æ×';
OR
SELECT id FROM test WHERE HEX(pid) = BIN2HEX('0xÞFÈ>ZPÎ×jRZ{æ×');
as supposed here: How to select with a binary field ? (php,mysql)
IF NOTHING FROM ABOVE WORKS: Try obtaining the pid
in HEX
format, like
SELECT id, HEX(pid) pid, test FROM test
and then when searching try only:
SELECT id, test FROM test WHERE HEX(pid) = '{$my_pid}'
But I'm not sure how do You obtain the pid
data to PHP or even whether You pass the binary data into Your select - where
query... Just guessing due to the php
tag...
The last posting from jixiang pointed me into the right direction for searching a binary field:
SELECT * FROM test WHERE yourBinaryColumn = x'binarystuffdata';
This works for me...
try:
X'' --Hex Content
mysql> SELECT x'4D7953514C';
-> 'MySQL'