我有一个名为“calls”的表,其中包含以下记录
id number
1998 1234
1999 5678
2000 567890
2001 567890
2002 567890
2003 567890
2004 567890
2005 5645
2006 5612
我想选择条件结合以下2个需求的所有记录:
所以结果将是:
id number
2000 567890
2001 567890
2002 567890
2003 567890
我试过这个:
select * FROM calls where number='567890' ORDER BY _id DESC LIMIT 10 OFFSET 1;
适用于SQLiteSpy,但这不适用于Android终端命令,它向我显示“错误:接近”ORDER“:语法错误。”,我试过的是:
sqlite3 database.db "select * FROM calls where number='567890' ORDER BY _id DESC LIMIT 10 OFFSET 1;"
有时,数字= 567890的记录数量可能会有所不同,所以上述语句中的“LIMIT”无效,如果它可以在REG搜索中使用像*这样的野生代码来匹配所有这些吗?
答案 0 :(得分:1)
这是一种方式:
select c.*
from calls c
where c.number = '567890' and
c.id <> (select max(c2.id) from calls c2 where c2.number = c.number);
答案 1 :(得分:0)
如果LIMIT表达式求值为负值,则返回的行数没有上限。
所以要使用LIMITless OFFSET:
SELECT * FROM calls WHERE number = '567890' ORDER BY _id DESC LIMIT -1 OFFSET 1;