Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql搜索包含数组的列_Php_Mysql - Fatal编程技术网

Php mysql搜索包含数组的列

Php mysql搜索包含数组的列,php,mysql,Php,Mysql,当我搜索结果时,我发现很多答案是mysql包含了指针,PHP提供了草垛。。。任意数组 我需要另一种方式。我的表有一个名为supervisor\u id的列,其中包含这样一个数组 a:2:{i:0;i:9999;i:1;i:1;} 在我的PHP代码中,我有一个保存在变量中的值$supervisor 如何在“主管ID”列中搜索$supervisor 我想大概是 从my_表中选择*,其中$supervisor位于“supervisor_id”中但这不起作用 更新 我刚刚发现,如果表列包含类似9999,

当我搜索结果时,我发现很多答案是mysql包含了指针,PHP提供了草垛。。。任意数组

我需要另一种方式。我的表有一个名为
supervisor\u id
的列,其中包含这样一个数组

a:2:{i:0;i:9999;i:1;i:1;}

在我的PHP代码中,我有一个保存在变量中的值<代码>$supervisor

如何在“主管ID”列中搜索$supervisor

我想大概是

从my_表中选择*,其中$supervisor位于“supervisor_id”中
但这不起作用

更新 我刚刚发现,如果表列包含类似
9999,1,5678
的列表,而不是数组<代码>a:2:{i:0;i:9999;i:1;i:1;}

这会有用的

从my_表中选择*,在该表中查找设置($supervisor,supervisor\u id)


当它是一个数组时,搜索它的等价物是什么?

您可以使用以下方法:

从my_表中选择*,其中的主管ID类似于“%i:$supervisor;%”

如果PHP中
$supervisor
的值为9,则实际查询将为:

从my_表中选择*,其中的主管ID类似于“%i:9;%”

并将匹配如下所示的所有序列化数组:

a:…:{;i:9;…;}


假设supervisor\u ID列只包含PHP序列化数组,这应该可以正常工作。

您可以尝试
“从my\u表中选择*,其中类似“%”的“supervisor\u ID”$监督人。“%”
LIKE
操作符将搜索模式,
%
充当匹配0个或更多字符的通配符。
REGEXP
操作符也可以工作,因为这是一个常规的事情,您需要规范化数据,以这种方式存储数据会导致各种困难“i”是静态字符串,从序列化数组开始,假设$supervisor都是整数,您的数组将始终具有“i”如果
$supervisor
9
,您的代码也将匹配
94
967
或…这很好,但您的更新代码不正确,因为它是一个字符串值,您需要使用
FIND_IN_SET
,就像OP在编辑问题时所做的那样。