2 つのクエリを 1 つに結合するのに問題があります。
クエリ 1:
SELECT *
FROM (`text`)
WHERE `text` LIKE '%TERM1%' ORDER BY `text`.`start` DESC
クエリ 2:
SELECT *,
MATCH (col1, col2, col3) AGAINST ('%TERM2%' IN BOOLEAN MODE) AS relevance
FROM `text`
WHERE MATCH (col1, col2, col3) AGAINST ('%TERM2%' IN BOOLEAN MODE)
AND status=2
ORDER BY `text`.`start` DESC
どんな提案も受け入れられます。
テーブル「テキスト」は次のようになります
+-------+--------+-------+------+------+
| col1 | col2 | col3 | text | id |
+-------+--------+-------+------+------+
| name1 | place1 | date1 | val1 | 1 |
| name2 | place2 | date2 | val2 | 2 |
| name3 | place2 | date5 | val1 | 3 |
| name4 | place4 | date4 | val5 | 4 |
| name5 | place5 | date5 | val5 | 5 |
:
:
| namex | placex | datex | valx | x |
+-------+--------+-------+------+------+
書き忘れていましたが、最初のクエリも start DESC で並べ替える必要があります...
次のような結果が期待されます: term1 = val1, and term2 = val5
+-------+--------+-------+------+------+
| col1 | col2 | col3 | text | id |
+-------+--------+-------+------+------+
クエリ 1 の結果:
| name3 | place2 | date5 | val1 | 3 |
| name1 | place1 | date1 | val1 | 1 |
クエリ2の結果
| name5 | place5 | date5 | val5 | 5 |
| name4 | place4 | date4 | val5 | 4 |
:
:
| namex | placex | datex | valx | 1 |
+-------+--------+-------+------+------+
ありがとう。
@PinnyM - はい、テーブルには名前が付けられtext
ており、テーブルスタンドの列の中にありますがtext
、残念ながら、完全なデータベースを使用してプロジェクトを採用しました。