用@select注解写一个用cno和cname属性联合的模糊查询方法
时间: 2023-12-03 15:47:38 浏览: 41
好的,以下是使用@select注解编写的用cno和cname属性联合的模糊查询方法:
```java
@Select("SELECT * FROM table_name WHERE cno LIKE CONCAT('%',#{cno},'%') AND cname LIKE CONCAT('%',#{cname},'%')")
List<Entity> findByCnoAndCname(@Param("cno") String cno, @Param("cname") String cname);
```
其中,@Select注解表示这是一个查询语句,后面的字符串是具体的SQL语句。#{cno}和#{cname}是占位符,表示此处需要传入两个参数cno和cname。使用CONCAT函数将%和传入的参数拼接起来,实现模糊查询。@Param注解用于指定参数名称,方便在SQL语句中引用。最终返回所有符合条件的Entity对象的列表。
相关问题
假设有表course,存储了Cno,Cname,和Cpno,用My SQL查询Cpno为空的Cname
可以使用如下的 SQL 查询语句来实现:
```
SELECT Cname
FROM course
WHERE Cpno IS NULL;
```
该查询语句会选取 `Cpno` 为空的课程记录,并返回它们的 `Cname` 值。使用 `IS NULL` 来检查 `Cpno` 是否为空,这是一种比较常用的方法,因为在 SQL 中 NULL 值与其他值之间的比较操作是无效的。
41 使用jxgl数据库,查询没有被选修过的课程的课程号和课程名。 select cno,cname from Course join sc on Course.cno=sc.cno where Course.cno = Null;
这个查询语句有一些问题,正确的查询语句应该是:
```
SELECT cno, cname FROM Course
WHERE cno NOT IN (SELECT cno FROM SC);
```
这个查询语句的意思是先在 SC 表中找出所有已经被选修过的课程号,然后在 Course 表中找出所有不在这个列表中的课程,即为没有被选修过的课程,最后查询出课程号和课程名。