如何使用两个 LIKE 条件?

How to use two LIKE conditions?

我需要找到名字中有 A 和 M 但姓氏中没有 a 和 m 的学生。这是我的查询,但出于某种原因,它一直显示有 M 的姓氏……我做错了什么?

SELECT (firstname || ' ' || lastname) AS "FullName"
  FROM A5
 WHERE Lower(FirstName) LIKE '%a%m%' 
   AND Lower(LastName) NOT LIKE '%a%m%'
ORDER BY LastName,
         FirstName

WHERE 子句应为:

WHERE (Lower(FirstName) LIKE '%a%m%'
OR Lower(FirstName) LIKE '%m%a%')
AND Lower(LastName) NOT LIKE '%a%'
AND Lower(LastName) NOT LIKE '%m%'

您只包括 FirstName 有一个 后跟 一个 m 的情况。同样,您只排除了 LastName 同时具有 a 和 m 的情况,其中 a 在 m 之前。

SELECT (firstname || ' ' || lastname) AS "FullName"
FROM A5
WHERE (lower(firstname) like '%a%' and lower(firstname) like '%m%') and ((lower(lastname) like '%a%' and lower(lastname) not like '%m%') or (lower(lastname) not like '%a%' and lower(lastname) like '%m%') )
ORDER BY LastName,FirstName

试试这个。