一:首先 说下关于时间戳和时间字符串之间的转换
时间戳转成字符串:FROM_UNIXTIME(user_ctime,'%Y-%m-%d %H:%i:%s')
字符串转成时间戳:select unix_timestamp('2018-07-01')
二:意思一样,但是不懂出来的结果为啥不一样。这段SQL分析太浪费我时间了
正确示范:
select t1.uid,count(t2.tid) as num
from a as t1
join b as t2
on t1.uid= t2.tid
where t2.time between 1530374400 and 1533052799
group by t1.uid
错误示范:
select c2.uid, count(c2.tid) from(
( select uid from a where userType=1 ) as c1
join
( select uid ,tid from topics where time between 1530374400 and 1533052799 group by tid ) as c2
on c2.tid= c1.uid
) as t
三:都是自己挖的坑,关于 like及or 的使用
错误示范:
select c1.tid
from a as c2
join b as c1
on c2.uid= c1.uid
where c1.time between 1530374400 and 1533052799
and c1. topic_tags like '%食品%' or c1. topic_tags like '%饮料%' or c1. topic_tags like '%汤%'
正确示范:ps 这段要了我的老腰了~本来腰疼被工作驱赶的都感受不到了
select c1.tid
from a as c2
join b as c1
on c2.uid= c1.uid
where c1.time between 1530374400 and 1533052799
and ( c1. topic_tags like '%食品%' or c1. topic_tags like '%饮料%' or c1. topic_tags like '%汤%' )
好啦~ 我的第二篇爬坑之路完结!继续努力