状态为预审中优先展示,状态为错误和中断的第二优先,剩下的按照时间排序,mybatis怎么写
时间: 2024-03-20 13:39:09 浏览: 22
可以通过使用MyBatis的`<choose>`标签和`<when>`标签来实现这个需求。
首先,需要在SQL语句中加入一个`ORDER BY`子句,按照优先级和时间排序:
```sql
SELECT * FROM your_table
ORDER BY
CASE status
WHEN '预审中' THEN 1
WHEN '错误' THEN 2
WHEN '中断' THEN 2
ELSE 3
END,
create_time ASC
```
然后,在MyBatis的Mapper文件中,可以这样写:
```xml
<select id="selectYourTable" parameterType="map" resultType="yourResultType">
SELECT * FROM your_table
ORDER BY
<choose>
<when test="status == '预审中'">1</when>
<when test="status == '错误' or status == '中断'">2</when>
<otherwise>3</otherwise>
</choose>,
create_time ASC
</select>
```
其中,`<choose>`标签中包含了三个`<when>`标签和一个`<otherwise>`标签。当`status`为`预审中`时,使用`<when>`标签输出`1`;当`status`为`错误`或`中断`时,使用`<when>`标签输出`2`;否则,使用`<otherwise>`标签输出`3`。这些数字会直接替换SQL语句中的`CASE`语句。
注意,此处的`parameterType`应该是`Map`类型,且必须包含`status`参数。`resultType`应该替换成你自己定义的结果类型。
希望这可以帮助到你!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)