다음 쿼리가 있습니다.
SELECT * FROM table
WHERE tester <> 'username';
tester가 문자열이 아닌 모든 결과를 반환 할 것으로 예상 username
하지만 작동하지 않습니다. Like
연산자 의 역수를 찾고 있다고 생각 하지만 확실하지 않습니까? 내 검색에서 나는 숫자에 대한 해결책을 찾았지만 (여기서 <>를 얻었습니다), 이것은 문자열과 함께 작동하지 않는 것 같습니다.
답변
귀하의 where
절은 모든 행 반환 tester
과 일치하지 않는 username
어디에 tester
null이 아닌 있습니다.
NULL을 포함하려면 다음을 시도하십시오.
where tester <> 'username' or tester is null
하위 문자열로 “username”이라는 단어가 포함되지 않은 문자열을 찾고 있다면 다음을 like
사용할 수 있습니다.
where tester not like '%username%'
답변
다음 쿼리를 시도하십시오.
select * from table
where NOT (tester = 'username')
답변
NULL 안전 조건은 다음과 같습니다.
select * from table
where NOT (tester <=> 'username')
답변
select * from table
where tester NOT LIKE '%username%';
답변
strcomp
기능이있어 적절하다 (문자열이 동일한 복귀 0) :
SELECT * from table WHERE Strcmp(user, testername) <> 0;
답변
결과를 얻는 또 다른 방법
SELECT * from table WHERE SUBSTRING(tester, 1, 8) <> 'username' or tester is null