这样的sql怎么写 表:tbl(dataid,value)逻辑:如果dataid点001 对应的 vaule存在,则取 该value,如果dataid点001不存则用dataid点002 对应的value,这样个有什么好的办法吗,在一个sql里面实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from tbl where dataid=(select min(dataid)from tbl where dataid>=1) select *from tb1where dataid='001' or dataid='002'order by dataidlimit 1 select * from tbl where dataid=(select min(dataid)from tbl where dataid>=1)采用这个好些 楼上,select *from tb1where dataid='001' or dataid='002'order by dataidlimit 1如果要在三个dataid 里面取值,直接用order by好像是不行的,例如001002003我要先判断002 是否存在,如果不存在就在判断 003,如 003 还不存在则就判断 001,我的意思是说dataid可能不能按照order by来排序的 还有这样情况例如tb1(id)123tba2(id,dataid,value)1,'001',11,'002',22,'001',12,'002',23,'001',13,'002',2现在用 tb1 join tb2 on tb1.id=tb2.id这时候用order by limit 就没有用, 可能我开始表述有问题,实际上是要实现 刚刚 上面那情况,例如tb1(id)123tba2(id,dataid,value)1,'001',11,'002',22,'001',12,'002',23,'001',13,'002',2要先判断在 Id相同的情况下,先判断 001 是否存在,不存在 就继续判断 002 参考下贴中的多种方法http://blog.csdn.net/acmain_chm/article/details/4126306[征集]分组取最大N条记录方法征集,及散分.... select b.*from tb1 ajoin tb2 b on a.Id=b.Id and b.dataid in('001','002')group by a.Id mysql 创建 触发器遇到的问题 关于mysqlreport的问题 一個分組統計的問題 select top 3 * from table,mysql不支持,还有嵌套查询,该如何更改为适合的语法 mysql的if语句是否能内嵌sql语句呢?主要为了解决一条记录不存在就插入否则就更新的问题 无法连接MySql 服务器 请教,为什么我装上的MYSQL没有"创建数据库"的选项啊? Mysql存储过程和数据库脚本 mysql数据导入的问题? 问一个连接查询的问题 mysql游标嵌套问题 求wordpress数据库phpadmin定时更新语句
select min(dataid)
from tbl
where dataid>=1)
from tb1
where dataid='001' or dataid='002'
order by dataid
limit 1
select min(dataid)
from tbl
where dataid>=1)采用这个好些
select *
from tb1
where dataid='001' or dataid='002'
order by dataid
limit 1如果要在三个dataid 里面取值,直接用order by好像是不行的,
例如
001
002
003
我要先判断002 是否存在,如果不存在就在判断 003,如 003 还不存在则就判断 001,
我的意思是说dataid可能不能按照order by来排序的
例如
tb1(id)
1
2
3tba2(id,dataid,value)
1,'001',1
1,'002',2
2,'001',1
2,'002',2
3,'001',1
3,'002',2现在用 tb1 join tb2 on tb1.id=tb2.id
这时候用order by limit 就没有用,
例如
tb1(id)
1
2
3tba2(id,dataid,value)
1,'001',1
1,'002',2
2,'001',1
2,'002',2
3,'001',1
3,'002',2要先判断在 Id相同的情况下,先判断 001 是否存在,不存在 就继续判断 002
[征集]分组取最大N条记录方法征集,及散分....
select b.*
from tb1 a
join tb2 b on a.Id=b.Id and b.dataid in('001','002')
group by a.Id