我正在尝试找到一种更好的方法来搜索存储在 mySql 数据库中的数组,以确定是否要从该行返回值。目前我正在解析整个数组,如果它包含我想要的,我继续做我想做的任何事情,如果没有,我继续下一行。它超级慢。
我将数组存储在一个列中,我们将其称为类别。例如:1,zzz31zzz,31,4,5
我想搜索该列,如果它包含“31”,则继续操作我的数据。
所以我像这样访问我的数据库:
$sql = "SELECT * FROM db WHERE arg=1 AND category != ''";
$sqlresult = mysql_query($sql);
while($row = mysql_fetch_array($sqlresult))
{
$vals = explode(',', $row['category']);
foreach($vals as $val)
{
if($val == 31)
{
//do something
}
else
{
//dont
}
}
}
我觉得有一个明显的答案,我只是没有考虑。任何人都可以提出更好的选择吗?我将以这种方式处理数千个数组,而 3 按原样需要将近半秒。我会犹豫在我的搜索中使用通配符,因为我可能有诸如“1311”之类的数据。我非常需要搜索一个特定的变量。
-- 感谢大家的即时回复。我将能够在几个小时内在这里测试它们。我很欣赏这些建议。