sql语句模糊查询的问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句模糊查询的问题?相关的知识,希望对你有一定的参考价值。

详细如下:
一个字符串变量,有值,假使如str='一二三四五六七八';(注意,这个字符串是传进来的,是个变量,所以不能用后面的汉字,只能用str)

我想要在标准模糊匹配到,只要含有这个字符串中的任意一个字就能查询到。
select * from table where key like 后面我就写不出来了,因为直接写str,会全部找和这个str一样的数据,显然是找不到的。我想要的是只要含有'一二三四五六七八'中任何一个字符,就可以查到显示
想问问大家有没有思路哇

你好!

语句

                    

结果

注:查询语句中的字符串变量,结构变为了正则表达式可以辨识的结构。

字符串变量:

    可以通过传入前进行调整;

    可以通过自定义函数进行转换;


希望对你有帮助!

参考技术A SQL语句的标准形式是:
select * from table where key like '%[一二三四五六七八]%'
如果你是使用其他编程语言来的拼接,可以使用
“select * from table where key like '%[”+str+“]%'"
参考技术B 思路是这样的,你写一个split函数,把'一二三四五六七八'拆分成数组
然后用select * from table where key in arr
参考技术C select * from table where key regexp '一|二|三|四|五|六|七|八'

select * from table where key like '一'or key like '二' 我就写成这样了
参考技术D 对于那种sqlfrom的这种问题,你可以查一下相关的语句,如果是他的规范用法的话。那我觉得没么问题

sql语句对int类型进行模糊查询

重点:select * from course where cast(courseId as char) like ‘%118%‘;  

首先可以将int类型转换为string类型的值再进行模糊查询,用方法cast(num as char);这个可以将num(int类型)转化为char类型。完整的语句:假如我现在要在课程表(course)里面根据课程id(courseId)进行模糊查询:select * from course where cast(courseId as char) like ‘%118%‘;         118为我们模糊查询的数值。

       我采用spring boot + mybatis注解的方式进行模糊查询,我的sql语句拼写一直不正确,要么差不到数据,我所采用的方法是,在service层传值的时候,就将自己所要查询的字符串两边加上%进行查询。

String courseId = "%"+String.valueOf(course.getCourseId())+"%";
String courseName = "%"+course.getCourseName()+"%";
return courseMapper.findfuzzy(courseId,courseName);
//模糊查询
@Select("select * from course where cast(coureId as char)=#{courseId} and courseName=#{courseName}")
public List<Course> findfuzzy(@Param("courseId")String courseId,@Param("courseName")String courseName);

以上是关于sql语句模糊查询的问题?的主要内容,如果未能解决你的问题,请参考以下文章

sql语句模糊查询的问题?

SQL中的模糊查询语句

C# Access 模糊查询SQL语句

sql语句中怎么实现in中的模糊查询

关于sql语句模糊查询

Java里含占位符 支持模糊查询的SQL语句!!!!!