在SQL中BETWEEN IN

时间:2017-07-27 13:22:50

标签: mysql

我的my_own表包含列 - PersonID,FirstName,LastName,City,age和WorkStatus。使用WHERE条件写入BETWEEN IN语法,它不会返回任何行,但不会给出任何错误。

SELECT PersonID,FirstName,LastName,City,age,WorkStatus
FROM sakila.my_own
WHERE (FirstName BETWEEN 'Omer' AND 'Amrah')
AND NOT WorkStatus IN ('Unemployee');

为什么这样做?如果有人有任何答案,请与我分享。 提前感谢您的回答。

3 个答案:

答案 0 :(得分:-1)

您正在使用BETWEEN比较字符串。

所以显然它不会将它作为数字或日期字段进行比较。

还有一件事

AND NOT WorkStatus IN ('Unemployee');

而不是这个你必须把

AND WorkStatus NOT IN ('Unemployee');

答案 1 :(得分:-1)

你查询:

  SELECT PersonID,FirstName,LastName,City,age,WorkStatus
    FROM sakila.my_own
    WHERE (FirstName BETWEEN 'Omer' AND 'Amrah')

在语法上是正确的,但在语义上不正确。更具体地说,子句:FirstName BETWEEN 'Omer' AND 'Amrah'将始终导致空集,因为'Omer' > 'Amrah',字符串方式。尝试:

FirstName BETWEEN   'Amrah' AND 'Omer'

答案 2 :(得分:-1)

您应该将LIKE条件更改为使用WHERE FirstName LIKE '%Omer%' Or FirstName LIKE '%Amrah%' AND WorkStatus <> 'Unemployee'; 运算符

window.open()