У меня есть таблица с обоими полями типа данных BLOB. Я использовал базу данных sqlite. Мне нужно вставить в таблицу только двоичный текст.LIKE работает над BLOB-типом, но = не работает
Я написал программу в C. Я вставил успешно.
я вставил в таблицу, используя подготовленный оператор
Когда я пытаюсь найти запись с помощью «=» это не работает. Но, как дает
INSERT INTO test1 VALUES('^A~T^F�u�(Z<-~K�~A3���H9�~\�~A[�$D~G%~^|�',"^Q'^K^S^H�~Iq�~Or~N)V��~K�");
QUERY заявления
SELECT COUNT(*) FROM invalid_cert WHERE issuerId='^A~T^F�u�(Z<-~K�~A3���H9�~\�~A[�$D~G%~^|�';
Это утверждение дает отсчет до 0
тогда
SELECT COUNT(*) FROM invalid_cert WHERE issuerId LIKE '^A~T^F�u�(Z<-~K�~A3���H9�~\�~A[�$D~G%~^|�';
Это утверждение возвращает правильный счетчик.
Почему это происходит? Я даже проверил длину строки в таблице и длину введенной строки. Обе длины одинаковы. Я даже проверил, есть ли в строке какие-либо «\ n» или «\ r». Нет такой строки.
использование 'strlen' на'^A ~ T^Fu (Z <- ~ K ~ A3 H9 ~ \ ~ A [ $ D ~ G% ~^| ', а затем привязать blob к 'SELECT COUNT (*) FROM invalid_cert WHERE issuerId =?' , это должно сработать. (Вставка должна также использовать тип blob.) – cshu