mybatis多个字段对应一个输入框模糊查询
时间: 2023-10-25 19:06:51 浏览: 42
如果需要多个字段对应一个输入框进行模糊查询,可以使用 MyBatis 的动态 SQL 功能,结合 WHERE、AND 和 LIKE 关键字来实现。
以下是一个简单的示例,假设有一个 User 表,包含 name、email 和 phone 三个字段,需要根据一个输入框的值来进行模糊查询:
```xml
<select id="searchUsers" parameterType="String" resultType="User">
SELECT * FROM user
<where>
<if test="keyword != null and keyword != ''">
AND (
name LIKE CONCAT('%', #{keyword}, '%')
OR email LIKE CONCAT('%', #{keyword}, '%')
OR phone LIKE CONCAT('%', #{keyword}, '%')
)
</if>
</where>
</select>
```
上述 SQL 使用了 `<where>` 标签来动态生成 WHERE 子句,`<if>` 标签用于判断输入框的值是否为空,如果不为空,则拼接三个字段的模糊查询条件,使用 OR 连接起来。
在 Java 代码中,只需要传入一个 keyword 参数即可:
```java
List<User> userList = sqlSession.selectList("searchUsers", "john");
```
上述代码会查询出 name、email 或 phone 中包含 "john" 的所有用户。