admin管理员组文章数量:1620925
最近遇到了一个问题:搜索框怎么实现?具体来说,数据库查询层面怎么实现?恰好最近在做的项目中也有这个功能,于是进行了一些探索和尝试。
功能分析
搜索框一般是对一个或多个字段进行模糊/精确匹配的一个功能。最简单的搜索框是对一个字段进行精确匹配,直接WHERE然后=就行了,要实现模糊匹配,可以把=换成LIKE,然后把条件加上通配符%。这个方法同样适用于下拉框(性质和搜索是一样的,只是前端已经预设好查询的内容)。
比较复杂但也是比较常见的搜索框,一般是多个字段的模糊/精确匹配。这篇文章主要讨论的就是这种比较复杂的搜索框。从一个字段延伸到多个字段,最显而易见的办法就是用OR把各个字段连接起来,用=/LIKE作判断。
(笨方法)想当然法
思路
想当然法是单个搜索框的延伸,也是我最开始使用的方法。用一个表(可以把它叫做搜索表),把需要搜索的信息(字段)全部放在一起。查询的时候用=/LIKE作判断,用OR把各个字段连接起来。
实现
SQL
SELECT * FROM student
WHERE
name LIKE '%2018100%' OR
student_number LIKE '%2018100%' OR
id_card LIKE '%2018100%' OR
phone LIKE '%2018100%' OR
dorm LIKE '%2018100%'
Java
(最后加了一个LIMIT做分页)
public String search(String content, String college, int page, int pageSize) {
String sql = "SELECT name,student_number,college,major FROM student_info_2019";
if (!"".equals(college) || !"".equals(content)) {
sql += " WHERE";
}
if (!"".equals(college))
版权声明:本文标题:搜索框的数据库实现思路和分析 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726552714a1075174.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论