本文實(shí)例講述了mysql實(shí)現(xiàn)查詢最接近的記錄數(shù)據(jù)。分享給大家供大家參考,具體如下:
查詢場景:現(xiàn)在的需求是查詢年齡最接近20歲的用戶,獲取前5個(gè)
我現(xiàn)在的數(shù)據(jù)庫記錄用戶年齡的字段記錄格式是"1995-05-20",字段名稱birthday
解決思路:
1.首先查詢時(shí)轉(zhuǎn)換成用戶年齡
日期格式轉(zhuǎn)年齡的方法:
(1)當(dāng)前年份 - 日期格式中的年份
date_format(now(), '%Y') - from_unixtime(unix_timestamp(birthday), '%Y')
(2)當(dāng)前年份 - 日期格式中的年份(獲取方法不同)
date_format(now(), '%Y') - year(birthday)
2.通過order by asb()
排序獲取最接近的數(shù)據(jù)
完整的語句:
SELECT
(date_format(now(), '%Y') - year(birthday)) as age
FROM
user
WHERE
is_anchor = 1
ORDER BY abs(20 - age)
limit 0,5
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》
希望本文所述對大家MySQL數(shù)據(jù)庫計(jì)有所幫助。
您可能感興趣的文章:- 詳解MySQL恢復(fù)psc文件記錄數(shù)為0的解決方案
- PHP+MySQL統(tǒng)計(jì)該庫中每個(gè)表的記錄數(shù)并按遞減順序排列的方法
- MySQL數(shù)據(jù)庫查看數(shù)據(jù)表占用空間大小和記錄數(shù)的方法
- MYSQL速度慢的問題 記錄數(shù)據(jù)庫語句
- MySQL通過觸發(fā)器解決數(shù)據(jù)庫中表的行數(shù)限制詳解及實(shí)例
- MySQL分區(qū)表的局限和限制詳解
- MySQL 如何限制一張表的記錄數(shù)