mysql 查询问题,高手进

来源:百度知道 编辑:UC知道 时间:2024/07/01 03:57:41
有一张表table含有两个字段caseid、tagid,没有主键。
tagid可以对应多个caseid,caseid也可以对应多个tagid;
现在需要查询所有对应tagid=1 和 tagid=2 的 caseid;

mysql 查询语句怎么写?

select a.caseid from (select distcint caseid from table where tagid=1) a,(select distcint caseid from table where tagid=2) b where a.caseid=b.caseid

请问:在数据库里面,timeset 字段的类型是什么?

与类型有关,当初既然是以time()值写入数据库,数据库里面应该设置为int类型,否则排序都不对,VARCHAR以文本方式在处理。

date_format函数的参数必须是date类型,否则结果会不对的。

既然你现在是这样的情况了,如果你没有权限修改数据库结构,或者不想动那么大的手足,你在SQL里面对timeset字段的条件,应该是在PHP里面转换为time()的长整形结果,也就是说,你只能用这样的SQL语句查询:
select * from member where timeset=1189933058

根据你的需要改了一下:
select caseid from table1 where tagid=1 or tagid=2 group by caseid having count(caseid)>1
测试通过,但前提是你的表中不能有两条一模一样的数据(即两条caseid 和 tagid都相同)