私は、次のMYSQLクエリを持っている:scriptures
とbooks
:このmysqlクエリを修正するには?
if(isset($_GET["keywords"])) {
$keywords = $db->escape_string($_GET["keywords"]);
$query = $db->query("SELECT * FROM data WHERE scriptures LIKE '%{$keywords}%' OR books LIKE '%{$keywords}%'");
?>
<div class='result-count'>
Found <?php echo $query->num_rows; ?> results.
</div>
<?php
if($query->num_rows) {
while($r = $query->fetch_object()) {
?>
<div class='result'>
<?php
$scriptures_link = $r->scriptures_link;
$books_link = $r->books_link;
echo "<a href='$scriptures_link'> Hi </a> <br>";
echo "<a href='$books_link'> Bye </a> <br>";
?>
</div>
<?php
}
}
}
は、私は2つの別々のカテゴリがあります。 LIKE文は、これらの両方のグループを対象としています。したがって、情報の1つの行にこれらの項目の両方に関する情報がある場合。したがって、一方の項目がLIKE文に一致し、他方の項目が一致しない場合、両方の項目が検索結果に表示されます。クエリを分割して一度に1つだけ行うにはどうすればよいですか?
DISTINCTを試しましたか? SELECT DISTINCT * –
@JohnEasleyはい、それは機能していません。 –
両方のキーワードセットに一致する行が返されないようにすることはできませんか?いくつかのサンプルデータと期待される結果を与えることができますか? – SilicaGel