MySQL 中存在十六進制的表示方法,該方法可以用于存儲二進制數據,也可以用于查詢和比較二進制數據。下面分別介紹十六進制存儲和查詢的方式。
一、十六進制存儲
INSERT INTO table_name (binary_data) VALUES (0x01020304);
上述 SQL 語句將二進制數據 01 02 03 04 存儲到名為 table_name 的表的 binary_data 列中。值得注意的是,0x 后面的數值要使用純字母數字形式,不能包含其他字符。
二、十六進制查詢
SELECT * FROM table_name WHERE binary_data = 0x01020304;
上述 SQL 語句將返回 binary_data 列中值為 01 02 03 04 的數據行。值得注意的是,在查詢時,也要使用 0x 表示法,并確保查詢的數據類型和存儲的數據類型一致。
除了完整的二進制數據,十六進制查詢還可以匹配部分二進制數據,具體方法如下:
SELECT * FROM table_name WHERE binary_data LIKE '01%';
上述 SQL 語句將返回 binary_data 列中以 01 開頭的數據行。
當然,十六進制查詢也可以利用運算符進行比較:
SELECT * FROM table_name WHERE binary_data >0x01020303;
上述 SQL 語句將返回 binary_data 列中大于 01 02 03 03 的二進制數據行。