如何从数据库中获取数据时删除SQL中的空行?

时间:2014-08-30 16:09:10

标签: mysql sql delete-row

我需要从数据库中获取最后50个标签,数据库中会有更多空行,我需要删除那些空行,同时从数据库中获取数据。有没有办法删除数据库中的空行?

<? 
    $result = mysql_query("SELECT * FROM tags ORDER by id DESC LIMIT 50");
    while($row = mysql_fetch_array($result)) {
        $title = str_replace('-',' ',$row['tag']);
        if (strlen($title) > 50)
            $title = substr($title, 0, strrpos(substr($title, 0, 50), ' ')) . '...';
            $title = str_replace('---','-',$title);
            $title = str_replace('--','-',$title);
            $tag = str_replace('---','-',$row['tag']);
            $tag = str_replace('--','-',$tag);
        echo "<a href=/mp3/".UrlText($tag)."/ title=\"".$title."\">".$title . "</a> :: "; 
    }
?>

3 个答案:

答案 0 :(得分:2)

要使用空(NULL)tag字段物理删除行,请使用以下查询:

DELETE FROM tags WHERE tag IS NULL OR tag = '';

如果要保留此行但不希望将其包含在查询集中,请使用此查询:

SELECT * 
FROM tags 
WHERE tag IS NOT NULL AND tag != ''
ORDER BY id DESC LIMIT 30

答案 1 :(得分:1)

您可以先删除带有null的行,然后从db中检索数据。如果你想要最后50行,那你为什么要使用限制30?

答案 2 :(得分:0)

试试这个..

set.seed(24)
res <- lapply(1:3, function(i) list(AUCFSALL= rnorm(1),
         COEFFS= rep(1,5), MODELS= sample(LETTERS, 5)))
TEST <- data.frame(Col1= 1:3)