2016-09-06 7 views
0

データベースから値を取得する際に、文字列の特定の接頭辞を省略する必要があります。PHPの文字列関数を使用せずにLaravel 5でMySQLクエリを書く方法は?

MySQLで

が、私は、

SELECT RIGHT('abc3',1) -- Results in "3" 
SELECT RIGHT('abc3',2) -- Results in "c3" 

を以下のように使用することができます。しかし、どのように私は雄弁Laravelに同じプロセスを使用することができます?。

または、laravelのデータベースから取得している間に、文字列のプレフィックスを削除するためのソリューションがあります。

トリムは削除されますが、スペースのみが削除されることはわかっています。

ex. 
property_color 
property_size 

は、ここで私は "property_" を抽出する必要があります。

expect. 
    color 
    size 

それは、PHPの文字列関数を使用せずにで、laravelで可能です。

ダイレクトエリクセン操作でのみ。

ありがとうございました!私はどうなるのかだ

+0

'DB :: raw'と同じクエリが使用されます –

+0

' $ someVariable = Input :: get( "some_variable"); $ results = DB :: select(DB :: raw( "SELECT * FROM some_table WHERE some_col = '$ someVariable'")) 'これは単にクエリの例です –

+0

通常のクエリを実行してからPHPの 'substr()'関数で必要な文字列の塊? – Adrenaxus

答えて

0

$arrayData = DB::select(DB::raw("SELECT RIGHT('abc3',1) ")): 

あなたが値をバインドするパラメータの配列を渡すことができます。

DB::select(DB::raw(" SQL QUERY "),$paramsArray); 
+0

しかし、これはクエリビルダの下にあります。ここでは、リレーショナルモデルは拒否されます。だから私はElaquentを楽しみにしています。 –

+0

とにかくこれはありがとう! –

0

あなたは

$results = YourRepo::where(DB::raw("SELECT SUBSTRING('property_color',9)") , 'LIKE', "%property_xxx%"); 
のようなあなたのビルダーの中に生のクエリを使用する必要があります

部分文字列が遅いことに注意してください。

+0

しかし、これで私はまあまあの関係をすることができませんよね? –

関連する問題