我想查询一个表中的10条记录。
条件为:
1:跟据用户地址位置,(字段地区:area = "深圳"),并优先提取是推荐的。
1:如地址位置不够,就先抽出推荐的记录来补充。(字段推荐:tj = 1)
2:如果前二条取出记录数不够10条,就按最新时间抽取出剩余记录来。(字段时间:add_time)有啥好方法没?呵。大家可以多想出几个方法哦。最好推荐个性能最佳的。呵。谢谢了!
条件为:
1:跟据用户地址位置,(字段地区:area = "深圳"),并优先提取是推荐的。
1:如地址位置不够,就先抽出推荐的记录来补充。(字段推荐:tj = 1)
2:如果前二条取出记录数不够10条,就按最新时间抽取出剩余记录来。(字段时间:add_time)有啥好方法没?呵。大家可以多想出几个方法哦。最好推荐个性能最佳的。呵。谢谢了!
解决方案 »
- mysql-cluster问题
- 这样的sql怎么写?我混乱了关于left join
- 用mysqldump导出数据库时,怎么将一个大表分成若干insert导出呀。Mysql Administrator 就是这样实现的
- 大家一般都用什么工具debug Mysql的函数procedure
- a表(20M)装载到内存表中,内存表巨占内存(288M)???
- MYSQL 真的那么强大而好学??高分探讨。
- 为什么在SQL下面能行,在JSP下显示不了中文?大家帮我看看程序
- MySQL问题
- Lost Connections to MYSQL server during query
- 统计3月1日之前注册,4月1日前有过1到3个订单
- 关于压缩备份和增量备份的问题
- 重金求数据库 mysql 的 一条sql查询语句
FROM tb
ORDER BY
CASE WHEN area ='深圳' THEN 0 ELSE 1 END,
CASE WHEN tj = 1 THEN 0 ELSE 1 END,
add_time DESC
LIMIT 10;
from yourTable
order by (area = '深圳') desc,TJ desc,add_time desc
limit 10;
id area tj add_time
1 广州 1 1000000000
2 北京 0 1000000001
3 深圳 0 1000000002
4 上海 0 1000000003
....取出的记录应该是先配对area 地区推荐,然后再次是地区。所以就继续查找推荐,加上推荐也不够的话。就按最新时间来查找出。直到找出十条记录这样查找出来的(广州用户访问的话),应该是先取出id1,然后再取出id4,id3,id2