(本题解讲的是最通俗易懂但不是最简便解法,所以大佬可以绕道或轻喷🤣小白可以看看,主要是学习思路;当然如果你很熟悉正则,那么代码将会异常简单!😉)

1. 解题思路

其实这题比第一题还要简单点。。。就是按条件筛选数据,所以首先会用到WHERE从句。 接着,筛选条件要包含某些特定关键词,翻译一下就是对university列的值进行模糊匹配,所以用LIKE() 方法即可解决。 不过要注意的题目这几个字👉满足以下所有条件的用户👈,这暗示我们还要对匹配的三个条件进行AND(并列)操作。同时再看看这几个条件:

  • 以“北京”或“上海”开头;
  • 以“学院”或“校区”结尾;
  • 包含“职业”或“专科”或“成人”。

(这里简单回顾一下LIKE加上通配符%的用法

LIKE()模糊匹配以某字符开头是用LIKE加上某字符再接上通配符%:LIKE '某字符%'LIKE()模糊匹配以某字符结尾是用LIKE加上通配符%再接某字符:LIKE '%某字符'LIKE()模糊匹配包含某字符是用LIKE加上通配符%+某字符+通配符%:LIKE '%某字符%'。)

因此上面的三个匹配条件就按三种用法进行改写,还要注意一点:用连接符OR筛选任一符合的单一条件;同时对每个筛选条件记得加上小括号()

2. 考察知识点

  • WHERE条件查询用法
  • LIKE模糊匹配用法
  • AND和OR的用法

3. 参考代码

SELECT id, device_id, university FROM user_profile 
WHERE (university LIKE '北京%' OR university LIKE '上海%') AND (university LIKE '%学院' OR university LIKE '%校区') AND (university LIKE '%职业%' OR university LIKE '%专科%' OR university LIKE '%成人%');

alt