MySQL搜索X特定术语的行数

时间:2013-01-06 02:53:38

标签: mysql search limit

我有一个有300多行的数据库。

出于各种原因,我只想一次搜索21行特定术语和不同的起始索引点。

我在名为search_terms的专栏中查询“禁止的商业广告”。

当我使用下面的查询时,它会搜索所有300行的“禁止商业广告”,而不是仅搜索21行。

SELECT `rating_score`
FROM archived_videos
WHERE search_terms='banned commercials'
ORDER BY `rating_score` DESC
LIMIT 0,21

3 个答案:

答案 0 :(得分:1)

尝试使用此

SELECT rating_score FROM archived_videos WHERE search_terms='banned commercials' ORDER BY rating_score DESC LIMIT 21

限制它指定21将结果限制为第21页

答案 1 :(得分:1)

如果要搜索排名前21位的行,可以使用子选择

来执行此操作
SELECT t.`rating_score`
from (select *
      FROM archived_videos
      ORDER BY `rating_score` DESC
      LIMIT 0,21) t
WHERE t.search_terms='banned commercials'

答案 2 :(得分:0)

我从你的问题中得出你想要搜索21行的块,而不是将结果集限制为21行。 LIMIT子句限制结果,而不是搜索的记录集。要限制记录,您需要在where子句中添加一些内容。这取决于你桌子的内容。如果您有一个编号为1到300行的序列列,您可以说“where sequence> = 1和sequence< 21”,并根据需要调整数字。

另一种方法是添加一个select子句:

select iif (search_terms="banned", 1, 0) as flag
into temp_table
from archived_videos
limit 21

select * from temp_table where flag = 1

您可以使用子选择将这两个选项合并为一个。