私は変数がmysqlフィールドのカンマ区切り文字列の中にquerybuilderを使って存在するかどうかを確認する必要があります。コンマ区切りの値フィールドを探すLaravel 5.1
私はこの
<?php
$parents = DB::table('categorie')>whereRaw('FIND_IN_SET("$categoria->id", parent)')->get();
を行うが、任意の値を返しませんでした。
私は変数がmysqlフィールドのカンマ区切り文字列の中にquerybuilderを使って存在するかどうかを確認する必要があります。コンマ区切りの値フィールドを探すLaravel 5.1
私はこの
<?php
$parents = DB::table('categorie')>whereRaw('FIND_IN_SET("$categoria->id", parent)')->get();
を行うが、任意の値を返しませんでした。
自分でクエリに変数を入れないでください。代わりにバインディングを使用すると、パラメータが正しくエスケープされます。
<?php
$parents = DB::table('categorie')->whereRaw('FIND_IN_SET(?, parent)', [$categoria->id])->get();
あなたは$ categoria-> idがクエリ内か置かれている場合、これはそれをクリアします
DB::table('categorie')->whereRaw('FIND_IN_SET("$categoria->id", parent)')->toSql();
なっクエリ後toSql()メソッドを使用して、クエリをデバッグすることがあります。
私はまだコメントできませんので、回答として投稿してください。
クエリは$ parents = DB :: table( 'categorie') - > whereRaw( "FIND_IN_SET( '"。$ categoria-> id。 "、parent)") - > get(); –
これは、SQLが実行されるクエリではありません。 toSql()メソッドを使用すると、SQLで実行されるのとまったく同じクエリが得られます。指定されたクエリはクエリビルダのインスタンスであり、実行前にSQLクエリに変換されます。 –
検索クエリは機能していますか? –
カンマで区切られた文字列をデータベースに持つことは、ほとんどの場合、常に悪い考えです。将来的にはこれらの問題にぶつからないように、データベースアーキテクチャの再設計を検討してください。 – Daniel