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

Php 在查询中使用正则表达式时出现MySQL查询异常,php,mysql,regex,Php,Mysql,Regex,PHP(Symfony 2.0): 引发异常: 错误:应为IdentificationVariable | StateFieldPathExpression| AggregateExpression | \“(\“Subselect\”)\”ScalarExpression,已获取 “*” 我想获取sid字段与正则表达式匹配的所有实体 有什么问题吗?您误用了CreateQuery()方法返回的QueryBuilder对象 您正在编写DQL(条令查询语言),而不是MySQL。REGEXP不是DQL

PHP(Symfony 2.0):

引发异常:

错误:应为IdentificationVariable | StateFieldPathExpression| AggregateExpression | \“(\“Subselect\”)\”ScalarExpression,已获取 “*”

我想获取sid字段与正则表达式匹配的所有实体


有什么问题吗?

您误用了CreateQuery()方法返回的QueryBuilder对象

您正在编写DQL(条令查询语言),而不是MySQL。REGEXP不是DQL关键字,因此出现错误

您在这篇文章中有相同的问题:


这里给出了一个解决方案。

无法直接回答您的问题,但为什么不在SQLFiddle上试用呢?
$term = "3";

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

$shops = $query->getResult();