Symfony Doctrine: Поиск в simple_array - PullRequest
0 голосов
/ 15 января 2020

Я получил значения, хранящиеся в поле моего столбца базы данных, как 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 находится на 2-й позиции простого массива, подобного value1,value2,value3, как я могу попросить QueryBuilder выбрать второе значение в строке?

Я думаю, этот запрос пытается получить все значения в p.vals, результаты не верны, нужно выбрать только одно.

Как выбрать, например. 2-е значение в p.vals?

1 Ответ

1 голос
/ 15 января 2020

Я полагаю, что вы не можете получить доступ к n-му элементу столбца массива с использованием чистого Mysql, поскольку данные сериализуются, для этого я бы создал простую функцию

public function getItemFromArray(array $array, $index)
{
    return isset($array[$index]) ? $array[$index] : null;
}

И если вы хотите чтобы найти предмет с условием, используйте

array_filter()
...