mysql任意字段组合查询的问题

java web新手,最近遇到一个需求就是对于一张有n个字段的数据表,web页面中表单也有n个输入框,用户可以填其中的任意多个字段的搜索关键字,然后需要能够根据用户提交的这任意多个关键字进行组合查询。
找了一下资料说是要用多列索引来做,但是没找到具体的做法,希望大佬们能从mysql数据库层面和代码层面介绍一下这类问题应该怎么解决。

阅读 4k
4 个回答

判断所有的字段是否有值,动态拼接出sql语句进行处理。

跟索引没什么关系吧,索引只是加快查询速度的,你这个应该是在java端获取到GET或者POST的值,然后进行sql的拼接,然后再执行即可

一般来说,可以尝试分析查询条件是否具有父子关系来建立包括多重索引在内的索引,一旦索引有可能独立查询的话,不可以出现在联合索引的不是第一个的字段。

新手上路,请多包涵

根据前台传入的数据,去提取所有的属性名和属性值,然后判断属性值是否有值,如果有值的话根据属性名去拼接相应的sql语句的查询条件,最终执行整个sql

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏