如果我有桌子:ID, num,varchar
其中ID
是一个整数,1,2或3。
然后num
是一个数字,从1到100。
varchar
只是一些文字。
因此总共有300行,在此表中没有特别排序。
我可以使用哪种查询来获取此表中16-21的ID
= 2和num
的行?
(总共产生6行)
答案 0 :(得分:3)
怎么样
SELECT * from yourtable where ID = 2 AND num >= 16 AND num <= 21
或者,等效使用BETWEEN
SELECT * from yourtable where ID = 2 AND num BETWEEN 16 AND 21
创建索引以便稍后进行更快的查找(但会稍微减慢插入速度):
CREATE INDEX indexname on yourtable (ID,num);
答案 1 :(得分:2)
SELECT * FROM TABLE WHERE ID = 2 AND NUM > 15 AND NUM < 22;
其中TABLE
是您的表的名称。通常,假设您选择了列ID和NUM,它们应该被索引以便更快地检索(即数据库不必检查每一行)。虽然你的桌子很小,但这里可能不会有太大的不同。
答案 2 :(得分:1)
这应该这样做:
SELECT * FROM table WHERE id = 2 AND num > 15 AND num < 22