0
$keywords=array("test","tset");
$matches = implode(',', $keywords);
$sql = "SELECT * FROM `reg` WHERE title like in '%$matches%' group by p_title";

$data = mysql_query($sql); 
while($info=mysql_fetch_array($data))
{
Print " {$info['title']}<br /> ";
}

のようなクエリを書きたい

   $sql = "SELECT * FROM `reg` WHERE title like in '%test%' group by p_title";
   $sql = "SELECT * FROM `reg` WHERE title like in '%tset%' group by p_title";

.........

1 つのクエリで各キーワードを検索するにはどうすればよいですか?

4

5 に答える 5

1
"SELECT * FROM reg WHERE title like in '%test%' or  title like in '%tset%' group by p_title"
于 2013-05-08T14:10:20.213 に答える
0
SELECT * FROM reg WHERE title like in '%{$keywords[0]}%' or title like in '%{$keywords[1]}%'

これにはループを使用することをお勧めします。例:

注:これはかなり疑似的です

$query = "SELECT * FROM reg WHERE title like in ";
foreach ($keyword in $keywords) {
  if (!$keyword is last)
    $query .= "'%$keyword%' or title like in ";
  else $query .= "'%$keyword%' group by p_title"
}

次に評価する$query

于 2013-05-08T14:12:34.693 に答える
0

この投稿を参照してください: MySQL LIKE IN()?

$keywords=array("test","tset");
$matches = implode('|', $keywords);
$sql = "SELECT * FROM `reg` WHERE title REGEXP '%$matches%' group by p_title";

$data = mysql_query($sql); 
while($info=mysql_fetch_array($data))
{
    Print " {$info['title']}<br /> ";
}
于 2013-05-08T14:14:09.467 に答える
0
$sql = "SELECT * FROM `reg` WHERE title ";

$where='';
foreach($keywords as $val)
{
  $where .= "LIKE '%$val%' OR title ";

}
$where = substr($where , 0, -9); // to remove last OR 
$finalSql = $sql .$where;

$data = mysql_query($finalSql); 
于 2013-05-08T14:18:28.853 に答える