mysql搜索包含数组的列

时间:2019-03-09 01:37:48

标签: php mysql

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

我反过来需要它。我的表有一个名为supervisor_ids的列,其中包含诸如此类的数组...

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

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

如何在“ supervisor_ids”列中搜索$ supervisor?

我会假设...

SELECT * FROM my_table WHERE $supervisor IN 'supervisor_ids',但无效

更新

我刚刚发现,如果表列包含9999,1,5,678之类的列表而不是数组... a:2:{i:0;i:9999;i:1;i:1;}

这行得通...

SELECT * FROM my_table WHERE FIND_IN_SET($supervisor,supervisor_ids)

当它是一个数组时,相当于搜索什么?

1 个答案:

答案 0 :(得分:1)

您可以使用以下方法做到这一点:

myscores = 0:10:100; output = zeros(1, length(myscores)); for ii = 1:length(myscores) mark = myscores(ii); if mark < 60 output(ii) = mark / 2; elseif mark >= 60 && mark <= 70 output(ii) = mark; elseif mark > 70 output(ii) = mark * 2; else disp('error on mark= ') mark end end matrix_out = [myscores' output'];

如果PHP中SELECT * FROM my_table WHERE supervisor_ids LIKE "%i:$supervisor;%";的值为9,则实际查询为:

$supervisor

并将匹配所有像这样的序列化数组:

a:...:{...; i:9; ...;}

假设supervisor_ids列仅包含PHP序列化的数组,则应该可以正常工作。