2 baidu 32457989 baidu_32457989 于 2016.01.18 13:53 提问

mysql多个条件分列显示问题 2C

SELECT dir3.url from dir3 LEFT JOIN dir4 on dir4.url=dir3.url where dir4.id is null or dir3.md5<>dir4.md5 and dir3.inputtime=1453086000
现在这两个都合并显示在一列,求大神帮我修改一下,分成两列显示,能否做到?

4个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.01.18 14:05

这两个指哪两个,怎么显示的一列,要显示成什么样的2列。

baidu_32457989
baidu_32457989 有两个条件啊,是或的关系,现在要把他们拆开显示,一列是前一个条件的结果,另一列是后一个条件的结果
接近 2 年之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2016.01.18 14:09
 SELECT dir3.url,'1' as type from dir3 LEFT JOIN dir4 on dir4.url=dir3.url where dir4.id is null 
 union all
 SELECT dir3.url,'2' as type from dir3 LEFT JOIN dir4 on dir4.url=dir3.url where  dir3.md5<>dir4.md5 and dir3.inputtime=1453086000
baidu_32457989
baidu_32457989 恩不好意思,我看明白了 但是不对啊 我需要呈现的是,is null的那个结果为一列 不相等的为另一列 现在我的表里面不相等的是空,那么应该会出现一列是空才对吧?
接近 2 年之前 回复
baidu_32457989
baidu_32457989 不知道是不是我写错了,我这显示结果有两列,一列是url,一列全是1
接近 2 年之前 回复
baidu_32457989
baidu_32457989   2016.01.18 14:15

恩不好意思,我看明白了
但是不对啊
我需要呈现的是,is null的那个结果为一列
不相等的为另一列
现在我的表里面不相等的是空,那么应该会出现一列是空才对吧?

qq_16414307
qq_16414307   2016.01.19 11:26

SELECT ifnull(dir4.id,dir3.url) c1,case when dir4.id is null then '' else dir3.url end c2
from dir3
LEFT JOIN dir4 on dir4.url=dir3.url
where dir4.id is null or dir3.md5<>dir4.md5 and dir3.inputtime=1453086000

qq_16414307
qq_16414307 回复baidu_32457989: 你要注意,where等条件都是你原始,为什么要这些条件,只有你明白阿
接近 2 年之前 回复
qq_16414307
qq_16414307 回复baidu_32457989: 关键你要把你想要的说清楚,最好给两张表实际数据,然后给出期望结果
接近 2 年之前 回复
baidu_32457989
baidu_32457989 我试了一下,好像差不多了,但是没有查出来不相等的,而且,下面为什么还是两个条件or,再麻烦,每个条件都有inputtime,忘记加了
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!