複数のカラムを対象とするキーワード検索するためのWHERE文

<?php

$fields_array = array("column1", "column2", "column3");
$keyword_array = array("word1", "word2");

$or_phrase = [];

foreach($keyword_array AS $keyword){

    $like_phrase = [];

    foreach($fields_array AS $fields){

        $like_phrase[] = $fields." like '%".$keyword."%'";
    }

    $or_phrase[] = '(' . implode(" OR ", $like_phrase) . ') ';
}


$wherestr = implode(" AND ", $or_phrase);
echo $wherestr;

 

対象とするカラム、検索したいキーワードを各配列に格納し、上記のようなスクリプトで、下記を実現できる。

(column1 like ‘%word1%’ OR column2 like ‘%word1%’ OR column3 like ‘%word1%’)  AND (column1 like ‘%word2%’ OR column2 like ‘%word2%’ OR column3 like ‘%word2%’)

 

DBにおいて、複数のカラムを対象にした検索するためのWHERE文を教えてください。|teratail
お世話になります。複数のカラムに対して複数のワードを検索するため、以下のようなWHERE文を考えています。 (column1 like '%word1%' OR column2 like '%word1%' OR column3 like '%word1%') AND (column1 like

コメント

タイトルとURLをコピーしました