我想从我的数据库中按照字母(asc或desc)顺序的姓氏字段从sqlite中检索下一个或上一个记录。但是,姓氏不是唯一的字段,我也只能为每个查询检索一条记录(LIMIT 1),因为我使用的是sqlite的回调机制,而且我不想缓冲返回的每个可能结果的结果从查询中(除非没有其他选项)。我还有一个名为customerId的唯一字段(即行ID)。如何获取具有相同姓氏的下一条记录
这是我目前使用的语句:
stream << "select * from customerTable where LastName >= '" << customerLastName << "' order by LastName asc limit 1";
我尝试了一些其他的语句,如:
stream << "select * from customerTable where LastName >= '" << customerLastName << "' and CustomerId != " << customerId << " order by LastName asc limit 1";
但是这一个保持与相同的姓氏2个记录之间翻转。
所以我需要找到一个技巧,无论何时姓氏相同或不相同,都会给我下一个(或前一个记录)。
我可能会错过这里,但为什么不使用'SELECT DISTINCT'? – NPE 2013-03-12 10:36:32
我不熟悉独特的,我需要检查一个出 – 2013-03-12 10:37:35
不同的参数是过滤重复,这不是我想要的,我仍然希望从数据库中检索每个记录。但是由于我当时只检索一条记录,因此我需要能够以上一条记录作为起点检索下一条记录。所以,如果姓氏相同,我需要能够检索它或跳到下一个姓氏,如果它与以前的姓氏不同。在我的程序中,我使用箭头上下按照姓氏的字母顺序浏览存储在数据库中的客户。 – 2013-03-12 10:42:18