正しい MYSQL データベースをスキャンしてキーワードを検索し、a) 一緒に、または b) 別々にそれらを返す 2 つのクエリがあります。「ランク」と呼ばれる新しい列を追加しました。これは、それらを順番にランク付けします。各クエリに「ORDER BY rank」を追加し、1 つの用語を入力すると結果が正しく表示されますが、2 つ以上の用語を入力すると次のエラーが発生します: MySQL クエリ エラー: SQL 構文にエラーがあります; 1 行目の「ORDER BY rank」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。結果は自動的に ID によってランク付けされます。1 つのクエリから ORDER BY タグを削除すると、他のクエリのタグが機能しなくなります。理解できません?私の質問は以下です。
// Terms Together
$query = " SELECT * FROM scan WHERE ";
$terms = array_map('mysql_real_escape_string', $terms);
$i = 0;
foreach ($terms as $each) {
if ($i++ !== 0){
$query .= " AND ";
}
$query .= "keywords LIKE '%{$each}%' ORDER BY rank";
}
/* Query Statement Building - Terms Separate */
$query = " SELECT * FROM scan WHERE ";
$terms = array_map('mysql_real_escape_string', $terms);
$i = 0;
foreach ($terms as $each) {
if ($i++ !== 0){
$query .= " OR ";
}
$query .= "keywords LIKE '%{$each}%' ORDER BY rank";
}