SQL:查找包含短语的行,无论大小写

时间:2018-05-15 02:06:39

标签: mysql sql natural-join

这是我正在使用的数据库:https://drive.google.com/file/d/1ArJekOQpal0JFIr1h3NXYcFVngnCNUxg/view?usp=sharing

列出CS部门的学术和学术总数 deptname的字母顺序。 CS部门是其部门的部门 包含短语“计算机...科学”或“计算...科学”在大写或 小写字母。您必须使用NATURAL JOIN操作符。

我尝试这个问题:

SELECT deptnum
FROM academic NATURAL JOIN department
WHERE UPPER(deptname) LIKE ('%computer science%') OR UPPER(deptname) LIKE 
('%computing science%')
ORDER BY deptnum;

它不断提出任何价值观,我不确定我做错了什么。

谢谢

编辑:

谢谢大家。这就是我现在使用的(虽然效率低下):

SELECT distinct deptnum
FROM academic NATURAL JOIN department
WHERE UPPER(deptname) LIKE ('%COMPUTER%') AND UPPER(deptname) LIKE 
('%SCIENCE%')OR UPPER(deptname) LIKE ('%COMPUTING%') AND UPPER(deptname) 
LIKE ('%SCIENCE%')
ORDER BY deptnum;

1 个答案:

答案 0 :(得分:0)

MySQL中的LIKE运算符已经不区分大小写,因此以下内容应该有效:

SELECT deptnum
FROM academic
NATURAL JOIN department
WHERE deptname LIKE '%computer%' OR deptname LIKE '%computing science%'
ORDER BY deptnum;

我们可以使用REGEXP整理一下,这也是不区分大小写的:

SELECT deptnum
FROM academic
NATURAL JOIN department
WHERE deptname REGEXP 'computer|computing science'
ORDER BY deptnum;