当前位置: 首页 > 面试题库 >

带有二进制数据的SQL查询(PHP和MySQL)

刘明朗
2023-03-14
问题内容

过去,这个网站对我有很大帮助,但现在我迷路了。在此先感谢您的指导。

我有一个包含Binary值的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查询来查找该值为true的行的ID。

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

…不起作用。任何的想法?

解决方案: 以HEX格式获取nid可以 解决问题
。结果是DE46C83E5A50CED70E6A525A7BE6D709,而当我在这样的查询中使用它时…

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

我得到正确的结果。


问题答案:

注意 :此地址为二进制数据,但不 加密
数据。请参阅此答案以搜索加密数据。

尝试添加Xx0x在用于搜索的二进制数据前面:

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

编辑: 也试试这个:

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

要么

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

如此处所述:如何使用二进制字段进行选择?(php,mysql

如果没有从上面的工作原理: 尝试获取pidHEX格式,如

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

然后在搜索时仅尝试:

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

但是我不确定如何将pid数据获取到PHP,甚至不确定是否将二进制数据传递到select - where查询中php



 类似资料:
  • 我想在php上创建一个函数,它将返回数组中sql查询的值。函数中的sql ode可以工作,我可以显示值。 但是当我想在一个函数中使用它时,它就不起作用了。我的语法中有什么错误?

  • SQL用例是否可以显示操作,返回到函数的结果,作为其else条件的结果? //(to_date(r.RENT_RETURN_DATE,'dd-mon-yyyy')-to_date(r.RENT_DUE_DATE,'dd-mon-yyyy')) ----返回一个整数// 当我执行上述查询时,会显示以下错误: 错误报告- SQL错误:ORA-00932:不一致的数据类型:预期CHAR得到编号00932

  • 问题内容: 我在bin中有一些图像,我想检查标题以检查格式(jpg,png等) 我不想使用临时文件!我有使用TEMP FILES的解决方案。 问题答案: 这些位以: 其他我现在不知道的东西,但是大3(jpeg,gif,png)通常覆盖99%。因此,将第一个字节与那些字符串进行比较,您将得到答案。

  • 问题内容: 我正在学习如何在Excel驱动的SQL查询中使用参数(实际上,我仍在学习SQL),我想更进一步,并在Excel中提供一个参数来过滤结果。 这是我的查询: 我需要做的是允许团队中的人在excel工作表中运行此查询,并在第二个JOIN中为“ GROUP_NAME”提供其组名。不幸的是,我无法使用语法(在此处找到),因为我需要从MODULE_FUNCTION表中提取所有结果,并且仅在提供的组

  • 本节将学习如何从SQL Server数据库查询数据。从一个简单的查询开始,查询语句用于从单个或多个表中检索数据。 SQL是一种特殊目的的编程语言,它是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子,无论是高级查询还是低级查询,SQL查询语

  • 问题内容: 我试图在不使用准备好的语句的情况下将一些Binary数据插入MySQL数据库。原因是我将成千上万条语句连接到一个插入中,一次运行一次。(MySQL转储和导入的工作原理) 我已经尝试了以下语句,但是都失败了: 插入my_table值(1,’g = F| }X ‘,2); 插入my_table值(1,CAST(’g = F| }X ‘as BINARY),2); 插入my_table值(1