当前位置: 首页 > 面试题库 >

使用LIKE的教义2查询

向弘懿
2023-03-14
问题内容

我有以下查询代码:

$repository = $em->getRepository('AcmeCrawlerBundle:Trainings');
       $query = $repository->createQueryBuilder('p')
               ->where('p.title LIKE :word')
               ->orWhere('p.discription LIKE :word')
               ->setParameter('word', $word)
               ->getQuery();
$trainings = $query->getResult();

问题是:即使存在匹配项,此查询也找不到它们。我使用此代码查看了完整的sql:

print_r(array(
        'sql'        => $query->getSQL(),
        'parameters' => $query->getParameters(),
        ));

而我得到的是:

FROM Trainings t0_ WHERE t0_.title LIKE ? OR t0_.discription LIKE ? [parameters] => Array ( [word] => Spoken )

(查询的最后一部分)请告诉我要更改什么?


问题答案:

您忘记%了单词周围的迹象:

->setParameter('word', '%'.$word.'%')


 类似资料:
  • 问题内容: 可以说我有这样的第一张桌子 分支表 第二张桌子是这样的 余额表 我想查询余额表,其中每一行包含分支表的名称。例如分支表中的“ 123456ABC”,我想从余额表中获取“ ABC”行 我怎样才能做到这一点?到目前为止,我还没有尝试过这个查询 有什么建议吗? 问题答案: 你应该 转换 了的名称模式: 联接看起来更易读:

  • 问题内容: 这项工作: 这不起作用: 错误: 语法错误]行0,列118:错误:预期的字符串结尾,得到了’(’ 本地学说功能abs仅对语句的选定部分起作用,而对部分命令不起作用。 Obs: 1-)我避免使用NativeQuery。 2-)u.code是mysql上的varchar fild,需要是varchar(有时是数字,有时是字符串),我需要在数字情况下订购数字。 有帮助吗? 问题答案: 解决了

  • 主要内容:带有“%”通配符的查询,带有“_”通配符的查询,LIKE 区分大小写,使用通配符的注意事项和技巧在 MySQL 中, LIKE 关键字主要用于搜索匹配字段中的指定内容。其语法格式如下: [NOT] LIKE  '字符串' 其中: NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。 字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。 LIKE 关键字支持百分号“%”和下划线“_”通配符。 通配符是一种特殊语句,主要用来模糊查询。当不知道真正

  • 问题内容: 我有以下代码,给我错误: 码: 数据(或$ ids): DQL结果: 问题答案: 在研究此问题时,我发现了一些对于遇到此问题并寻求解决方案的人来说很重要的事情。 在原始帖子中,以下代码行: 将命名参数包装为数组会导致绑定参数编号问题。通过将其从数组包装中移除: 此问题应得到解决。在以前版本的Doctrine中这可能是个问题,但在最新版本的2.0中已解决。

  • 本文向大家介绍oracle sql语言模糊查询--通配符like的使用教程详解,包括了oracle sql语言模糊查询--通配符like的使用教程详解的使用技巧和注意事项,需要的朋友参考一下 oracle在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像...”的数据记录,以下是可使用的通配符: %   零或者多个字符 _   

  • 问题内容: 以下查询对我来说绝对正常: 但是,如果我使用而不是与子查询的结果进行比较,则不会得到任何结果。如何在上述查询中使用? 问题答案: 首先,这个查询 应该 不会是工作的罚款: 因为不正确的SQL。并且,您应该学习使用正确的语法。大概,您打算: 可以想象,您可以在子查询中添加代替和’%’的内容: 但我会这样写: 这与查询没有完全相同的作用。它做一些更合理的事情。它会确定子查询中是否有 任何