1、这篇文章 中写了SQL 的具体写法
SQL中用一个关键字(词)匹配表里面多个字段(或属性)进行查询
https://blog.csdn.net/qq_43544074/article/details/120352323
2、本篇写具体代码的写法如下:
Controller写法
/**
* 一个关键字模糊查询多个字段
*/
//权限标签
@PreAuthorize("@ss.hasPermi('test:testone:keyword')")
//访问地址
@GetMapping("/keyword/{keyWord}")
public TableDataInfo querykeyword(@PathVariable String keyWord)
{
List<QueryDto> list = testTwoJavaProjectQueryService.selectQuerykeyword(keyWord);
return getDataTable(list);
}
//Dto接收查询结果,返回
import java.util.Date;
public class QueryDto {
/** ID */
private String Id;
/** 名称 */
private String name;
/** 类型 */
private String type;
/** 标签 */
private String tag;
/** 状态 */
private String Status;
//然后生成get 、set 方法即可
}
//Service写法
public List<QueryDto> selectQuerykeyword(String keyWord);
//实现类写法
@Override
public List<QueryDto> selectQuerykeyword(String keyWord) {
return testTwoJavaProjectQueryMapper.selectQuerykeywordlist(keyWord);
}
//testTwoJavaProjectQueryMapper.java Mapper写法
public List<QueryDto> selectQuerykeywordlist(String keyWord);
//xml 写法
<resultMap type="com.test.dto.QueryDto" id="QueryDtoResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="type" column="type" />
<result property="tag" column="tag" />
<result property="status" column="status" />
</resultMap>
<sql id="testTwoJavaProjectQuerylistVo">
SELECT * FROM(
select id,name,type,tag,status,'TABLEONE' tablename from TABLEONE
UNION
select id,name,type,tag,status,'TABLETWO' tablename from TABLETWO) AB
</sql>
<select id="selectQuerykeywordlist" parameterType="com.test.dto.QueryDto" resultMap="QueryDtoResult">
<include refid="testTwoJavaProjectQuerylistVo"/>
<where>
<if test="keyWord != null and keyWord != ''"> CONCAT(id,model,type,status) LIKE concat('%',#{keyWord},'%')</if>
</where>
</select>
至此即可完成一个关键字查询多个字段的模糊查询。
版权声明:本文为qq_43544074原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。