我想從我的數據庫中按照字母(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