假設情景如下:
user_table的字段如下:
keyword \t c_time \t heat
keyword是字串的具有重複性的,c_time表示的是時間,heat是整形常數。
如下所示:
**如下:
select keyword, max(created_at) as latest_created_at ,max(search_index) as
latest_publish_time from data_table where created_at > date_sub(now(),interval '1:30'
hour_minute) and keyword is not null and plateform_id=1 and search_index!=0 group by keyword
limit 10;
上面的**,先使用group by keyword 將相同keyword分成同乙個組,然後使用max(created_at)將最新的資料獲取出來,會獲取到唯一的資料;本來就已經能夠得到一組唯一的資料了,但是又想獲得search_index欄位,所以要使用max(search_index),這樣才能得到search_index欄位。【這個是從group by陣列中獲得欄位的一種方式啊,雖然明明知道max(search_index)是沒什麼意義的,但是必須要是函式獲取欄位才不會報錯】。
然後使用:
created_at > date_sub(now(),interval '1:30' hour_minute)
上面的語句獲取到當前時間乙個半小時的資料之內的資料,mysql可以直接使用">","
keyword is not null
語句,將keyword 不為空。
這樣就獲得資料了。
mysql獲取兩個表中不重複的資料
比如有兩個資料表,表結構是一樣的,乙個a表資料300w行,乙個b表資料17w行,我們需要獲取a表中不包含b表的資料。下面大致記錄一下獲取過程,方便查詢回憶。a表結構 idpay id user idb表結構和a表一直,只不過b表中的user id欄位都是唯一的,而a表中的user id欄位是可重複的...
利用Ibatis實現Mysql中的不重複插入記錄
以下討論全部針對mysql資料庫 通常業務上至少需要兩種型別的不重複插入記錄的需求 1 針對上面的第一種,mysql提供了insert into on duplicate key update 語法 mysql自己的語法,不屬於標準sql 來實現。這種場景相對常見。使用的前提是,需要定義主鍵或者唯一...
mysql 計算非重複 MySQL 不重複插入
sql unique 約束 unique 約束唯一標識資料庫表中的每條記錄。unique 和 primary key 約束均為列或列集合提供了唯一性的保證。primary key 擁有自動定義的 unique 約束。請注意,每個表可以有多個 unique 約束,但是每個表只能有乙個 primary ...