このサイトは以前は私を大いに助けてくれましたが、今は迷子になっています。よろしくお願いします。
次の例のように、バイナリ値を含む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個すべてが表示されています)
次に、この値がtrueである行のIDを探すSQLクエリを作成します。
SELECT id FROM test WHERE nid = 'ÞFÈ>ZPÎ×jRZ{æ×';
... 動作しません。何か案が?
解決策 HEX形式でnidを取得することでうまくいきました。結果はDE46C83E5A50CED70E6A525A7BE6D709になり、これをこのようなクエリで使用すると...
SELECT id FROM test WHERE HEX(nid) = 'DE46C83E5A50CED70E6A525A7BE6D709';
私は正しい結果を得ています。