SQL-запрос с двоичными данными (PHP и MySQL)

Этот сайт очень помог мне в прошлом, но теперь я потерян. Заранее благодарим за руководство.

У меня есть таблица MySQL, которая содержит двоичное значение, как пример ниже. Я не могу изменить таблицу.

CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nid` binary(16) NOT NULL, `test` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`)) 

Это примерное значение nid: ÞFÈ>ZPÎ×jRZ{æ× (не все показаны, но все 16)

Теперь я хочу создать SQL-запрос для поиска идентификатора строки, где это значение истинно.

 SELECT id FROM test WHERE nid = 'ÞFÈ>ZPÎ×jRZ{æ×'; 

… не работает. Есть идеи?

РЕШЕНИЕ Получение низа в формате HEX делало трюк. Это приводит к DE46C83E5A50CED70E6A525A7BE6D709, и когда я использую это в запросе вроде этого …

 SELECT id FROM test WHERE HEX(nid) = 'DE46C83E5A50CED70E6A525A7BE6D709'; 

Я получаю правильный результат.

    Попробуйте добавить X , x или 0x перед двоичными данными, используемыми для поиска:

     SELECT id FROM test WHERE pid = '0xÞFÈ>ZPÎ×jRZ{æ×'; 

    EDIT: попробуйте также:

     SELECT id FROM test WHERE BINARY pid = 'ÞFÈ>ZPÎ×jRZ{æ×'; 

    ИЛИ

     SELECT id FROM test WHERE HEX(pid) = BIN2HEX('0xÞFÈ>ZPÎ×jRZ{æ×'); 

    как предполагается здесь: как выбрать бинарное поле? (PHP, MySQL)

    ЕСЛИ НИЧЕГО ОТ ВЫШЕИЗЛОЖЕННЫХ РАБОТ: Попробуйте получить pid в формате HEX , например

     SELECT id, HEX(pid) pid, test FROM test 

    а затем при поиске попробуйте только:

     SELECT id, test FROM test WHERE HEX(pid) = '{$my_pid}' 

    Но я не уверен, как вы получаете данные pid для PHP или даже если вы передаете двоичные данные в свой запрос select - where … Просто гадать из-за тега php

    пытаться:

     X'' --Hex Content mysql> SELECT x'4D7953514C'; -> 'MySQL' 

    Последнее сообщение от jixiang указывало мне в правильном направлении для поиска двоичного поля:

     SELECT * FROM test WHERE yourBinaryColumn = x'binarystuffdata'; 

    Это работает для меня …