1、查找某条数据的创建时间同个月内的所有数据
SELECT * FROM 表名 WHERE DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( '2021-01-01' , '%Y%m' )
create_time:表里表示创建时间的字段名
'2021-01-01' :选择的某条数据创建时间的年月日
2、使用select filed from table where field in (....)语句的排序问题
想要通过自己指定的序列进行排序,而不是单纯的通过某个字段的ASC/DESC 进行排序..
有2种方法:利用field函数或者find_in_set函数
如果现在有一个表如下:
mysql> select * from test;
+----+--------+
| id | number |
+----+--------+
| 1 | 2 |
| 2 | 3 |
| 3 | 5 |
| 4 | 8 |
| 5 | 7 |
| 6 | 1 |
| 7 | 9 |
| 8 | 6 |
+----+--------+
8 rows in set (0.00 sec)
第一种:使用field函数排序:
mysql> select id from test where id in(8,7,6,5,4) order by field(id,8,7,6,5,4);
+----+
| id |
+----+
| 8 |
| 7 |
| 6 |
| 5 |
| 4 |
+----+
5 rows in set (0.00 sec)
第二种:使用find_in_set()函数
mysql> select id from test where id in(8,7,6,5,4) order by find_in_set(id,'8,7,6,5,4');
+----+
| id |
+----+
| 8 |
| 7 |
| 6 |
| 5 |
| 4 |
+----+
5 rows in set (0.00 sec)