表格1:
id chapter sentence text
1 1 1 This is line1
2 1 2 This is line2
3 1 3 This is line3
4 1 4 This is line4
5 2 1 This is line1
6 2 2 This is line2
7 2 3 This is line3
8 2 4 This is line4
9 2 5 This is line5
10 2 6 This is line6
11 2 7 This is line7
12 3 1 This is line1
13 3 2 This is line2
14 3 3 This is line3
15 3 4 This is line4
16 3 5 This is line5
我正在尝试获取范围内的数据。我已经尝试了一些查询,但是没有得到预期的结果。
GetData(beginingChapter, endingChapter, beginingSentence, endingSentence)
GetData(1, 3, 3, 4)
SQL查询:
SELECT *FROM table1 WHERE (chapter=1 AND sentence>=2) OR (chapter=3 AND sentence>= 1 AND sentence<= 4);
例外结果:
3 1 3 This is line3
4 1 4 This is line4
5 2 1 This is line1
6 2 2 This is line2
7 2 3 This is line3
8 2 4 This is line4
9 2 5 This is line5
10 2 6 This is line6
11 2 7 This is line7
12 3 1 This is line1
13 3 2 This is line2
14 3 3 This is line3
15 3 4 This is line4
有什么建议?如何达到预期的效果?
一种简单的方法是将查询的结构构造为对所有与下限匹配的页面具有一个条件,而对一个与上限匹配的页面具有一个条件,只需将它们与在一起即可;
SELECT *
FROM table1
WHERE (( chapter = 1 AND sentence >= 3 ) OR chapter > 1)
AND (( chapter = 3 AND sentence <= 4 ) OR chapter < 3)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句