mysql - Symfony Doctrine : Search in simple_array

标签 mysql sql symfony doctrine query-builder

我的数据库列字段中存储的值为 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/

相关文章:

symfony - 在 Symfony2 Controller 上获取表单参数

performance - 在 symfony 3 上的所有 phpunit 测试之前加载一次装置

php - Laravel 5.2 getDirty 总是空数组

mysql - 使用临时文件和文件排序总是不好吗?

mysql - 如何根据另一个表中指定的关系从一个表中获取值?

php - yii框架中数据库迁移错误

symfony - 如何在我的应用程序中从 Monolog 读取日志?

php - 使用 Angular 对 json 执行 CRUD 操作。?

php - 如何设置从MySQL数组获取多个值并检查数组键

mysql - SQL Server 到 MySQL 链接服务器上的插入 OpenQuery 性能极慢