質問: "SELECT * FROM `table` WHERE CONCAT( `column01` , `column02` , `column03`) LIKE '%引数1%' AND CONCAT( `column01` , `column02` , `column03`) LIKE '%引数2%' AND CONCAT( `column01` , `column02` , `column03`) LIKE '%引数3%' ``` SQLも初心者のため複数カラムから該当する検索式の書き方もなんとなくですので、 同様の結果が出せればSELECT構文のアドバイスなども頂ければ幸いです。
回答: 作成するSQLの最終形を、 ``` /* * ここから「1 = 1」までは固定文字列で持ってもよい。 * 「1 = 1」は必ず成立する条件なので抽出結果に実害はない。 */ SELECT * FROM `table` WHERE 1 = 1 /* ここから下の条件をパラメタに応じて動的作成 */ AND CONCAT(`column01`, `column02`, `column03`) LIKE '%引数1%' AND CONCAT(`column01`, `column02`, `column03`) LIKE '%引数2%' AND CONCAT(`column01`, `column02`, `column03`) LIKE '%引数3%' ``` 上記の形となるようにすると、 単純にパラメタの数だけPHP側のループ処理で、 条件句を組み立てることができます。 イメージは以下の感じで・・・ ``` $sql = "ここはSQLの固定文字列を設定"; foreach ($array as $prm) { $sql .= "ここで動的作成する条件を記載"; }; ``` ヒント程度の回答ですが、参考までに。