mustafa90 adlı üyeden alıntı: mesajı görüntüle
Dediğinizden anladığım kadarı ile böyle birşey istiyorsunuz



$query = 'abc haberi';
$query = addslashes($query);

$sql = '
select
 *,
  match(title) against("'.$query.'") as ft_result_1,
  match(body) against("'.$query.'") as ft_result_2
from
   table
where
  (
      match(title) against("'.$query.'") ||
      match(body) against("'.$query.'")
  )
order by ft_result_1, ft_result_2 desc
';
Not: title ve body alanları ayrı ayrı full text search olarak belirtilmesi gerekir.
Not2: MySQL sunucunuzda "ft_min_word_len" default olarak 4 dür. Bu şu anlama gelir; en az 4 karakter içeren bir arama gerçekleştirebilirsin. 3 karakter gerekiyorsa bu değerin ayarlanması gerekir.
Not3: Çalışmaz ise aşağıdaki kodu deneyebilirsiniz.

$query = 'abc haberi';
$query = addslashes($query);

$sql = '
select
 *,
  match(title) against("'.$query.'" IN BOOLEAN MODE) as ft_result_1,
  match(body) against("'.$query.'" IN BOOLEAN MODE) as ft_result_2
from
   table
where
  (
      match(title) against("'.$query.'" IN BOOLEAN MODE) ||
      match(body) against("'.$query.'" IN BOOLEAN MODE)
  )
order by ft_result_1, ft_result_2 desc
';
üçüncü dördüncü bir kolon daha yazmak istersek örneğin: ili='İSTANBUL' gibi bişey