我的数据库列字段中存储的值为 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()
关于mysql - Symfony Doctrine : Search in simple_array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59753115/