关于mybatis中mysql查询语句的问题

现在我要做一个网页的搜索功能,用的是POSITION函数进行模糊查询+REPLACE函数去除所有查询内容的空格,但是我发现了一个问题,就是比如我要查询 springboot,但是如果标题中含有的是:spring boot(中间带一个空格),结果就并不会被查询出来,请问怎么用mysql语句来查询字段中带有空格的语句(比如我输入的是spring,能查询到字段中含有比如s pring, sp ing, spi ng,这种所有的结果)

2个回答

可以在传递参数的时候,将参数的空格去掉

Bigmuu
Bigmuu 回复abc67509227: 兄弟,采纳采纳
大约一年之前 回复
Bigmuu
Bigmuu 回复abc67509227: 像这种网页的搜索不是应该用solr这些吗
大约一年之前 回复
Bigmuu
Bigmuu 回复abc675
大约一年之前 回复
abc67509227
CN_Seagull 回复Bigmuu: 哦哦,晓得了,一开始为了提高效率我用的POSITION函数去进行的模糊查询,后来就不想去掉了……
大约一年之前 回复
Bigmuu
Bigmuu 回复abc67509227: SELECT * FROM 表名 WHERE TRIM(REPLACE(字段名,' ','')) = TRIM(REPLACE(参数,' ',''));
大约一年之前 回复
abc67509227
CN_Seagull 表的字段记录内的数据含有空格,不是传参含有空格,我已经用REPLACE把传参的空格去掉了
大约一年之前 回复

可以用replace方法 replace(字段,' ','') 将空格用''替换掉

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!