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