TYPO3 创建查询
TYPO3 create query
我正在尝试使用 TYPO3 创建一个简单的查询。我正在尝试从名称以数值开头的 table 中检索所有结果,然后对它们进行排序。不幸的是,创建 $statement 变量不起作用。如何使用 TYPO3 类型的查询($query->matching
、$query->like
)执行此操作。谢谢您的回答。
更新:
TYPO3 版本:8.7.3
我尝试了什么:
public function sortReferencesNumerically(){
$query = $this->createQuery();
$statement = 'select * from tx_referencemanager_domain_model_reference WHERE name REGEXP '^[0-9]' ORDER BY CAST(name as SIGNED INTEGER) ASC';
$query->statement($statement);
return $query->execute();
}
NewUpdate : 不幸的是我不能使用 $statement 方法,即使它很有效。如果没有查询->语句方法,有没有办法做到这一点?
我试过这个,但它只显示 table 中以数字字符开头的第一个数据,即使我有 20-30 也很难。
array_push($queryConstraints, $query->logicalOr([
$query->like('name', '0%'),
$query->like('name', '1%'),
$query->like('name', '2%'),
$query->like('name', '3%'),
$query->like('name', '4%'),
$query->like('name', '5%'),
$query->like('name', '6%'),
$query->like('name', '7%'),
$query->like('name', '8%'),
$query->like('name', '9%'),
]));
你的琴弦断了。如果将字符串封装在单引号中,请不要使用单引号来分隔正则表达式。
这应该有效:
public function sortReferencesNumerically(){
$query = $this->createQuery();
$statement = 'select * from tx_referencemanager_domain_model_reference WHERE name REGEXP \'^[0-9]\' ORDER BY CAST(name as SIGNED INTEGER) ASC';
$query->statement($statement);
return $query->execute();
}
我正在尝试使用 TYPO3 创建一个简单的查询。我正在尝试从名称以数值开头的 table 中检索所有结果,然后对它们进行排序。不幸的是,创建 $statement 变量不起作用。如何使用 TYPO3 类型的查询($query->matching
、$query->like
)执行此操作。谢谢您的回答。
更新:
TYPO3 版本:8.7.3
我尝试了什么:
public function sortReferencesNumerically(){
$query = $this->createQuery();
$statement = 'select * from tx_referencemanager_domain_model_reference WHERE name REGEXP '^[0-9]' ORDER BY CAST(name as SIGNED INTEGER) ASC';
$query->statement($statement);
return $query->execute();
}
NewUpdate : 不幸的是我不能使用 $statement 方法,即使它很有效。如果没有查询->语句方法,有没有办法做到这一点? 我试过这个,但它只显示 table 中以数字字符开头的第一个数据,即使我有 20-30 也很难。
array_push($queryConstraints, $query->logicalOr([
$query->like('name', '0%'),
$query->like('name', '1%'),
$query->like('name', '2%'),
$query->like('name', '3%'),
$query->like('name', '4%'),
$query->like('name', '5%'),
$query->like('name', '6%'),
$query->like('name', '7%'),
$query->like('name', '8%'),
$query->like('name', '9%'),
]));
你的琴弦断了。如果将字符串封装在单引号中,请不要使用单引号来分隔正则表达式。
这应该有效:
public function sortReferencesNumerically(){
$query = $this->createQuery();
$statement = 'select * from tx_referencemanager_domain_model_reference WHERE name REGEXP \'^[0-9]\' ORDER BY CAST(name as SIGNED INTEGER) ASC';
$query->statement($statement);
return $query->execute();
}