2011-09-10 8 views
1

私はMySQLの全文検索エンジンを持っており、結果に年の範囲を追加して結果をフィルタリングできるようにします。私はyearという年の列を1999年から2011年に渡って持っています。これを反映するために私のmysql_queryをどうやって変更しますか?変数$fyearは、ユーザが(下端)で開始したい年であり、$tyearは(上端)で終了する年です。MySQLフルテキスト検索結果を絞り込むにはどうすればよいですか?

<?php 
mysql_connect("localhost", "root", "root"); 
mysql_select_db("database"); 

$var = @$_GET['q']; 
$fyear = @$_GET['from_year']; 
$tyear = @$_GET['to_year']; 

if (isset($var)) { 
$sql = mysql_query("SELECT *, MATCH(subj_name, course_name) AGAINST ('$var') 
AS score from table1 WHERE MATCH (subj_name, course_name) AGAINST('$var') 
ORDER BY score desc"); 
} 

注:列year

+0

年は整数か文字列フィールドですか? –

+0

整数です – JSW189

答えて

1

は、オペレータbetweenを見てください整数フィールドです。

$sql = mysql_query("SELECT *, MATCH(subj_name, course_name) AGAINST ('$var') AS 
score from table1 WHERE year BETWEEN '$fyear' AND '$tyear' MATCH (subj_name, course_name) AGAINST('$var') ORDER 
BY score desc"); 
0

私はフルテキスト検索に慣れていませんが、このようなクエリに条件を追加することはできませんか?

$sql = mysql_query("SELECT *, MATCH(subj_name, course_name) AGAINST ('$var') AS 
score from table1 WHERE year BETWEEN $fyear AND $tyear AND MATCH (subj_name, course_name) AGAINST('$var') ORDER BY score desc");