sql 字符串多对多like查询
时间: 2023-11-03 20:01:54 浏览: 58
假设有两个表,一个是学生表(students),一个是课程表(courses),它们之间有一个多对多的关系,即一个学生可以报多门课程,一门课程也可以被多个学生报名。现在需要查询某个学生报名的所有课程和某个课程被哪些学生报名了。
1. 查询某个学生报名的所有课程
```
SELECT c.course_name
FROM courses c
JOIN student_courses sc ON c.course_id = sc.course_id
JOIN students s ON sc.student_id = s.student_id
WHERE s.student_name LIKE '%张三%'
```
2. 查询某个课程被哪些学生报名了
```
SELECT s.student_name
FROM students s
JOIN student_courses sc ON s.student_id = sc.student_id
JOIN courses c ON sc.course_id = c.course_id
WHERE c.course_name LIKE '%数学%'
```
相关问题
sql 包含多个字符串
您可以使用 SQL 中的 LIKE 操作符来检查一个字符串是否包含多个子字符串。以下是示例 SQL 查询语句:
```
SELECT * FROM table_name WHERE column_name LIKE '%string1%' AND column_name LIKE '%string2%';
```
您可以将 string1 和 string2 替换为您要搜索的实际字符串,而 column_name 则是包含要搜索的字符串的列的名称。在此示例中,使用了两个 LIKE 操作符来检查 column_name 中是否同时包含 string1 和 string2。百分号(%)表示任何字符和任何字符序列。
sql 查询字符串转义
在 SQL 中,如果你要查询包含特殊字符(例如单引号、双引号、百分号等)的字符串,你需要对这些特殊字符进行转义,否则会导致 SQL 语句执行错误或者 SQL 注入攻击。
下面是一些常见的字符串转义方法:
1. 使用双单引号 '' 来转义单引号 '
例如,要查询包含单引号的字符串 "It's a sunny day",可以使用以下语句:
```
SELECT * FROM table_name WHERE column_name = 'It''s a sunny day';
```
2. 使用反斜杠 \ 来转义单引号 ' 或双引号 "
例如,要查询包含单引号和双引号的字符串 "It's a \"sunny\" day",可以使用以下语句:
```
SELECT * FROM table_name WHERE column_name = 'It''s a \"sunny\" day';
```
3. 使用 ESCAPE 关键字来转义特殊字符 %
例如,要查询包含百分号的字符串 "10%",可以使用以下语句:
```
SELECT * FROM table_name WHERE column_name LIKE '10\% ESCAPE '\';
```
这里的 ESCAPE '\'; 表示将反斜杠 \ 作为转义字符。
需要注意的是,不同的数据库系统可能有不同的转义规则,具体可以参考对应数据库系统的文档或者手册。
阅读全文