我在数据库列字段中将值存储为value1,value2,value3,value4
,因此存储为simple_array
列。
所以我正在使用Doctrine进行搜索:
$searchQuery = $this->getDoctrine()
->getRepository('AppBundle:Ads')
->createQueryBuilder('p')
->andWhere("p.vals <= :value2")
->setParameter('value2', $request->query->get('value2'));
->orderBy("p.creationtime", 'DESC');
因此,期望value2
位于像value1,value2,value3
这样的简单数组的第二个位置,我如何要求QueryBuilder选择字符串中的第二个值?
我认为此查询尝试获取p.vals
中的所有值,结果不正确,请选择一个。
如何选择例如p.vals
中的第二个值?
我相信您无法使用纯Mysql访问数组列的第n个项目,因为数据已序列化,为此,我将创建一个简单的函数
public function getItemFromArray(array $array, $index)
{
return isset($array[$index]) ? $array[$index] : null;
}
并且,如果您想查找有条件的物品,则使用该物品
array_filter()