2013-04-25 99 views
0

我有1個包含8000條記錄的MYSQL表。我想通過全名的第一個字符來查詢名字,中間名和姓氏。例如,我有40行記錄(名字,中間名和姓氏),他們的名字的第一個字符是SSS。我的問題是,如何查詢「SSS」只返回6個結果,當我再次查詢「SSS」時,我需要另外6個結果等等,直到所有40個記錄查詢結束。我需要根據值的第一個字符查詢MYSQL記錄

我用下面的查詢,但只返回前6個結果,當我下次查詢「SSS」時,它會一遍又一遍地返回相同的結果。拜託我需要你的幫忙。

SELECT * 
FROM Table 
WHERE (UPPER(FName) LIKE UPPER('S%') 
     AND UPPER(MName) LIKE UPPER('S%') 
     AND UPPER(LName) LIKE UPPER('S%') 
ORDER BY ID 
LIMIT 6 OFFSET 0 

在此先感謝。

+4

你需要增加偏移才能得到不同的結果 – Sharlike 2013-04-25 15:24:11

回答

0

您按ID排序 - 很好。還記得去年的最大ID返回的數據集,當你查詢下一次加條件ID> your_last_max_id

+0

這是一般的sql答案...在你的mysql情況下,你可以簡單地增加偏移! – Ivan 2013-04-25 15:38:09

+0

Ivan,你可以發表一個如何使用MAX ID來完成這個任務的例子嗎?使用1個查詢可以解決我遇到的問題嗎? – user2320369 2013-04-25 17:06:53

+0

1個查詢 - no。你必須在某個地方存儲狀態(最後偏移或最大ID)。我不知道你的整體問題是什麼,但是例如你可以將max id存儲在一個表中。假設它是表table1中的last_max_id,並且您使用0初始化它,則需要2個查詢來完成此操作: – Ivan 2013-04-26 08:31:22

0

第二次變化偏移:

LIMIT 6 OFFSET 6 

然後

LIMIT 6 OFFSET 12