dougu4704 2012-09-18 10:16
浏览 27
已采纳

在查询中使用正则表达式时MySQL查询异常

PHP (Symfony 2.0):

$term = "3";

$query = $em->createQuery(
     "SELECT * FROM SoftsystemSupportBundle:Shop WHERE sid REGEXP '^$term'"
);

$shops = $query->getResult();    

Throws an exception:

Error: Expected IdentificationVariable | StateFieldPathExpression | AggregateExpression | \"(\" Subselect \")\" | ScalarExpression, got '*'"

I want to get all entities where sid field matches regex.

Any ideas whats wrong?

  • 写回答

1条回答 默认 最新

  • douyuan6490 2012-09-18 10:24
    关注

    You are making a misuse of the QueryBuilder object returned by the CreateQuery() method.

    You are writing DQL (Doctrine Query Language) and not MySQL. REGEXP is not a DQL keyword, hence the error.

    You have the same issue of this post: Using REGEXP in Doctrine 2.X ORM.

    A solution is given there.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试