需求描述:
有时,我们需要从数据库中模糊查询,但字母都是大写和小写的。
1:执行查询时,需要忽略案例。
2:查询以输入字母开始
创建表格:
数据库脚本:
CREATE TABLE `base _ new _ info _缩写`(` id ` int(11)NOT NULL AUTO _ INDENTATION,` name `varchar (255)字符集utf8 collateutf8 _ bin默认空注释' name ',` name _ all`varchar (5000)字符集utf8 collate utf8 _ bin默认空注释' name details ',` create _ time `datetime默认空注释'创建时间',` create _ by `varchar (64)字符集utf8 collate utf8 _ bin默认空注释'创建者,` last _ ` last _ update _ by `varchar (64)字符集utf8 collate F8 _ bin default null comment ' last updated by ',` dere move ` int(11)default null comment ' delete mark 1 not deleted 0 deleted ',` is available ` int(11)default null comment ' display status 0 not display 1 is display ',主键(` id `)engine = innodb auto _ increment = 1 default charset = utf8;
插入数据:
插入到` base _ new _ info _缩写`(` id `,` name `,` name_all `,` create_time `,` create_by `,` last_update_time `,` last_update_by `,` deRemove `,Is available)'值(8,' d ',' ss ',' 2016-11-09 18: 00: 52 ',' admin ',' 2017-01-09 18: 00: 52 ',' admin ',1,1) 2017-10-20
假设用户现在想查询名字是d或者d开头的数据。
要解决需求一,忽略案例。可以先查询大写,后查询小写。然后在联盟之下
首先找出所有以d开头的小写字母:
找出所有以D开头的大写字母后
使用union进行连接。
当然,你也可以得到最终的结果。然而,这种实现效率不高。
解决第二个要求:输入字母开头模糊查询
在上面的语句中,我们可以看到使用了‘D %’或‘D %’,这似乎有点不太好。
综上所述,为了求解和优化查询d或d的开头,可以使用以下三个函数:
函数一:upper(关键字)。大写函数
功能二:lower(关键字)。小写函数
函数3: concat(str1,str2)。连接功能。
接下来,看看优化后的sql语句:
选择id、名称、名称全部作为名称全部从base _ new _ info _缩写,其中1=1且取消移动=1且可用=1且名称像大写(多联(' D ',' % ')或名称像小写(多联(' D ',' % '))按名称排序
也取得了我们需要的结果。
1.《mysql模糊查询 mysql 模糊查询实现不区分大小写》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《mysql模糊查询 mysql 模糊查询实现不区分大小写》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/838783.html