我有一个有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
答案 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
您可以使用子选择将这两个选项合并为一个。