2017-11-01 7 views
0

TYPO3を使用して簡単なクエリを作成しようとしています。私は名前が数値で始まるテーブルからすべての結果を取得しようとしています。残念ながら、$ステートメント変数の作成は機能しません。 TYPO3タイプのクエリ($query->matching$query->like)を使用してこれを行うにはどうすればよいですか。あなたの答えをありがとう。TYPO3作成クエリ

UPDATE:

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:残念ながら、私はそれが動作しても厳しい、$文メソッドを使用することはできません。とにかくquery-> statementメソッドなしでこれを行うには? 私はこれを試しましたが、数字の文字で始まる表の最初のデータのみを表示します。

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%'), 
       ])); 
+0

あなたは、より具体的に、あなたがしようとしている正確なコードを投稿することができますか?あなたの設定についての詳細(TYPO3のバージョン、拡張機能など) –

+0

あなたの文字列は壊れています。文字列を一重引用符でカプセル化する場合は、一重引用符を使用して正規表現を区切ります。 – j4k3

答えて

0

文字列が壊れています。文字列を一重引用符でカプセル化する場合は、一重引用符を使用して正規表現を区切ります。

これは動作するはずです:

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(); 
} 
+0

これを行う方法はありますか?$ステートメントメソッドはありませんか? –

+0

私が知っていることはありません。私が知る限り、正規表現はExtbaseで実装されていません。たぶん、その値が表すものを別の整数列に区切る必要があります。 – j4k3

関連する問題