【发布时间】:2014-01-29 21:16:41
【问题描述】:
我有一个长二进制写入 MySQL 作为长 BLOB。 当我通过我的 PHP 应用程序从数据库中读取 BLOB 时,我只想将前 12 个字节作为十六进制。 我使用 bin2hex(BLOB) 成功地将 BLOB 转换为十六进制,但不知道如何忽略前 12 个字节的数据。
【问题讨论】:
我有一个长二进制写入 MySQL 作为长 BLOB。 当我通过我的 PHP 应用程序从数据库中读取 BLOB 时,我只想将前 12 个字节作为十六进制。 我使用 bin2hex(BLOB) 成功地将 BLOB 转换为十六进制,但不知道如何忽略前 12 个字节的数据。
【问题讨论】:
你在找这个吗?
SELECT HEX(LEFT(data, 12)) partial
FROM table1
这里是SQLFiddle演示
BLOB 值被视为二进制字符串(字节字符串)。
因此,您可以使用 LEFT() 获取前 12 个字节,然后使用 HEX() 进行转换
我相信 Codeigniter 你可以做这样的事情
$result = $this->db
->select('HEX(LEFT(data, 12)) AS partial', FALSE)
->from('table1')
->get();
【讨论】: