这样的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 MYI比MYD大? 请教一个统计的sql语句 写个触发器也错了,帮忙看看怎么回事了啊? 高性能MySQL(第二版)中文PDF版下载 表a 的 字段id是int where id='1' 这个sql怎么写? 有关一个MySQL UPDATE语句 求SQL查询语句,谢谢! 创建一个表后如何为该表中的一个字段添加一个PRIMARY KEY主键 创建触发器后不能进行修改操作,Can't update table 'psxt_user' in stored function/trigger because 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