一、
有如下一张表
A | B |
1 | 1,2 |
2 | 1,2,3 |
3 | null |
4 | 2,3 |
其中A列的类型为INT,B列的类型为VARCHAR(20),要求查询出所有A不在B里的行(即B不包含A)
得到的结果如下:
A | B |
3 | null |
4 | 2,3 |
答案:select * from table where b like concat('"',cast(a as varchar ),'"') ;
select * from table where find_in_set(cast(a as varchar), b);
解析:使用concat函数拼接,cast函数将int类型转换为varchar类型尽心模糊查询。使用find_in_set函数进行判断是否包含。
二、
如下表
需要查询TripsID相同情况下,SetTime获取到一个月以后的最小最大数据。其结果如下
结果:select TripsID ,date_add(min(SetTime),interval 1 MONTH) as SetTime1 , date_add(max(SetTime),interval 1 month) as SetTime2 from table ;