0

提案されたファイルの検索は正常に機能します。ただし、この検索から 1 つのファイルを除外したいのですが、このクエリに追加する方法がわかりません。

$query = mysqli_query($con, "
SELECT *, MATCH(file_name_keyword) AGAINST('$file_name_keyword') 
FROM `uploaded` 
WHERE MATCH(file_name_keyword) AGAINST('$file_name_keyword') 
OR file_name_keyword REGEXP '.*($file_name_keyword).*' LIMIT 8");

これAND id NOT IN (57)

ほとんどすべてを試しましたが、ID 57 の行はまだ除外されません。

4

3 に答える 3

2

既存の条件を括弧で囲み、句NOT INの最後に the を追加するだけです。WHERE

SELECT *,MATCH(file_name_keyword) AGAINST('$file_name_keyword') 
FROM `uploaded` 
WHERE (MATCH(file_name_keyword) AGAINST('$file_name_keyword') OR file_name_keyword REGEXP '.*($file_name_keyword).*' )
AND id NOT IN (57)
LIMIT 8
于 2013-08-14T14:17:00.517 に答える
1
$query = mysqli_query($con, "
SELECT *, MATCH(file_name_keyword) AGAINST('$file_name_keyword') FROM `uploaded` 
WHERE 
    (MATCH(file_name_keyword) AGAINST('$file_name_keyword') 
OR  file_name_keyword REGEXP '.*($file_name_keyword).*') 
AND id NOT IN (57)
LIMIT 8
");

OR 条件の前後に括弧を使用する必要があります。そうしないと、mysql が間違った方法で読み取ります。

于 2013-08-14T14:17:37.140 に答える