2012-06-05 4 views
0

나는 높은 및 낮은 내 mysql 쿼리를 필터링 할 수 있지만 NOT NULL 작동하지 않는 검색했습니다. 누군가가 나를 도울 수 있기를 바랍니다. 이름이 'path'인 빈 열이 있습니다. 그리고 이것들을 걸러 내고 싶습니다.필터 MySQL 결과 빈 행을 함께

내 쿼리 :

SELECT 
p.path, p.title, p.body, p.post_date, u.username FROM pages p 
LEFT JOIN users u ON p.post_author = u.id 
ORDER BY p.id ASC 

는 어떻게 얻을 수있는이 완료? 감사.

+0

열이 * empty *라고하면 무엇을 의미합니까? 그들은 실제로 무엇을 포함합니까? SHOW TABLE TABLE 페이지의 결과를 보여줄 수 있습니까? – eggyal

답변

2
SELECT 
    p.path, p.title, p.body, p.post_date, u.username 
FROM pages p 
LEFT JOIN users u ON p.post_author = u.id 
WHERE 
    p.path IS NOT NULL AND 
    p.path <> '' 
ORDER BY p.id ASC 

이렇게 도움이됩니까? 아니면 다른 질문을하고 계십니까?

+0

필자는 이것을 바로 다음과 같이 얻었다 :'SELECT p.path, p.title, p.body, p.post_date, u.username FROM pages p LEFT JOIN users u ON p.post_author = u.id p.path IS NOT NULL ORDER BY p.id ASC'하지만 여전히 빈 경로 행을 필터링하지 않습니다. –

+0

그래서 비어 있거나 NULL입니까? ' p.path, p.title, p.body, p.post_date을 선택 u.username 페이지의 페이지 LEFT는 p.post_author = u.id p.path의 사용자에게 유 가입 : 다음과 같이 추가 NULL이 아니며 p.path <> '' ORDER BY p.id ASC' –

+0

Andrius, 정말 고맙습니다. 나는 오늘 새로운 무엇인가를 배웠다! –

0

는 빈 필드를 확인하기 위해 PHP로 시도 :

$query = "SELECT 
    p.path, p.title, p.body, p.post_date, u.username FROM pages p 
    LEFT JOIN users u ON p.post_author = u.id 
    ORDER BY p.id ASC"; 
$result = mysql_query($query); 

while($row = mysql_fetch_assoc($result)){ 

// Check for empty record 
if(!empty($row['path'])){ 
    echo $row['path']; 
    } 
} 
0

이 하나를 시도,이 작동하지 않을 수 있습니다.

SELECT 
p.path, p.title, p.body, p.post_date, u.username FROM pages p 
LEFT JOIN users u ON p.post_author = u.id 
WHERE p.path IS NOT NULL AND p.path <> '' 
ORDER BY p.id ASC