다음 표는 MySQL에 있습니다.MySQL에서 예기치 않은 NULL 비교가 없습니다.
city_data
+------+-----------+-------------+
| id | city_code | city_name |
+------+-----------+-------------+
| 4830 | BHR | Bharatpur |
| 4831 | KEP | Nepalgunj |
| 4833 | OHS | Sohar |
| 4834 | NULL | Shirdi |
+------+-----------+-------------+
및 그 이하의 쿼리.
select city, city_code, city_name from city_data 여기서 city_code! = 'BHR';
3 행을 예상했습니다.
| 4831 | KEP | Nepalgunj |
| 4833 | OHS | Sohar |
| 4834 | NULL | Shirdi |
+------+-----------+-------------+
하지만 2 행만 표시됩니다.
| 4831 | KEP | Nepalgunj |
| 4833 | OHS | Sohar |
+------+-----------+-------------+
나는 행
| 4834 | NULL | Shirdi |
없음 내 쿼리의 결과에 포함 이유를 이해 할 수 없습니다입니다. where 조건 (NULL! = 'BHR')이 전달되어야합니다.
제발 누군가 의심의 여지가 없습니다.
city_data에서 select id, city_code, city_name 여기서 COALESCE (city_code, '- 1')! = 'BHR'; ' – lad2025