SELECT DISTINCT g.* FROM epms_group g LEFT JOIN epms_member m ON m.saas_group_id = g.saas_group_Id LEFT JOIN epms_visit_country v ON v.saas_group_id = g.saas_group_Id WHERE 1 = 1 AND g.status IN ( <foreach collection="status.split(',')" item="item" separator=","> #{item} </foreach> ) ORDER BY create_date DESC 这里使用了 MyBatis 的 foreach 标签,将前端传递过来的状态字符串按照逗号分隔为多个参数,然后在 SQL 中进行 IN 查询如果传过来的只有一个字段可以用吗
时间: 2024-03-02 10:52:23 浏览: 77
是的,如果传过来的只有一个字段,可以直接写成以下形式:
```
SELECT DISTINCT g.*
FROM epms_group g
LEFT JOIN epms_member m ON m.saas_group_id = g.saas_group_Id
LEFT JOIN epms_visit_country v ON v.saas_group_id = g.saas_group_Id
WHERE 1 = 1
AND g.status = #{status}
ORDER BY create_date DESC
```
这样就可以直接使用一个参数来进行查询,不需要使用 foreach 标签了。
相关问题
SELECT DISTINCT g.* FROM epms_group g LEFT JOIN epms_member m ON m.saas_group_id = g.saas_group_Id LEFT JOIN epms_visit_country v ON v.saas_group_id = g.saas_group_Id WHERE 1 = 1 AND g.status = #{status} ORDER BY create_date DESC 这样就可以直接使用一个参数来进行查询,不需要使用 foreach 标签了写foreach可以只传一个状态吗
是的,可以只传一个状态,使用 foreach 标签也是可以的。例如:
```
SELECT DISTINCT g.*
FROM epms_group g
LEFT JOIN epms_member m ON m.saas_group_id = g.saas_group_Id
LEFT JOIN epms_visit_country v ON v.saas_group_id = g.saas_group_Id
WHERE 1 = 1
AND g.status IN (
<foreach collection="status.split(',')" item="item" separator=",">
#{item}
</foreach>
)
ORDER BY create_date DESC
```
这样写的话,如果只传递一个状态,就可以正常查询,如果传递多个状态,也可以正常查询。
SELECT DISTINCT g.* FROM epms_group g LEFT JOIN epms_member m ON m.saas_group_id = g.saas_group_Id LEFT JOIN epms_visit_country v ON v.saas_group_id = g.saas_group_Id WHERE 1 = 1 <if test="status !=null and status != ''"> and g.status in #{status} </if> order by create_date desc 前端传到后端的状态是多个 比如一,二,三,四, 这里的sql该怎么写
你的 SQL 可以这样写:
```
SELECT DISTINCT g.*
FROM epms_group g
LEFT JOIN epms_member m ON m.saas_group_id = g.saas_group_Id
LEFT JOIN epms_visit_country v ON v.saas_group_id = g.saas_group_Id
WHERE 1 = 1
AND g.status IN (
<foreach collection="status.split(',')" item="item" separator=",">
#{item}
</foreach>
)
ORDER BY create_date DESC
```
这里使用了 MyBatis 的 foreach 标签,将前端传递过来的状态字符串按照逗号分隔为多个参数,然后在 SQL 中进行 IN 查询。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![text/plain](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)