如何将这两个 SQL 查询合并为一个?
SELECT DISTINCT * FROM rss WHERE MATCH(content,title) AGAINST ('$filter')
SELECT COUNT(content) FROM rss WHERE MATCH(content,title) AGAINST ('$filters')
如果上述查询的结果为 0
-
SELECT DISTINCT * FROM rss WHERE content LIKE '%$filters%' OR title LIKE '%$filters%';
$filter .= $row['filter'];
$filters = $row['filter'];
$filters 可以是多个关键字
最佳答案
您不必使用查询 2,
mysql_num_rows
将指示查询 1 有多少行,因此只需丢弃查询 2
如果 mysql_num_rows
返回零,则继续查询 3
要将三个查询合并为一个,请使用OR
SELECT DISTINCT * FROM rss
WHERE
(MATCH(content,title) AGAINST ('$filter'))
OR
(content LIKE '%$filter%' OR title LIKE '%$filter%')
如上所述,您实际上并不需要先进行计数。
如果$filter包含很多关键字,则只需重复
(content LIKE '%$filter_1%' OR title LIKE '%$filter_1%') OR
(content LIKE '%$filter_2%' OR title LIKE '%$filter_2%') OR ...
关于php - 如何将这三个sql查询合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4531019/