检查mysql表中的空字段

时间:2011-01-06 12:22:19

标签: php mysql sql

我有一个包含12列和200行的表。我想使用php / mysql有效地检查此表中的空/空字段。例如。 “(第3栏第30行)是空的”。有功能可以做到吗? 简而言之:SELECT * FROM TABLE_PRODUCTS任何列都有空的字段。

9 个答案:

答案 0 :(得分:4)

empty != null

select * from table_products where column is null or column='';

答案 1 :(得分:1)

SELECT * FROM table WHERE COLUMN IS NULL

答案 2 :(得分:1)

据我所知,没有功能可以检查MySQL中的每一列,我猜你必须循环遍历这样的列......

$columns = array('column1','column2','column3');
foreach($columns as $column){
  $where .= "$column = '' AND ";
}
$where = substr($where, 0, -4);
$result = mysql_query("SELECT * FROM table WHERE $where",$database_connection);
//do something with $result;

=''将为您获取空字段。

答案 3 :(得分:1)

你总是可以尝试这种方法:

//do connection stuff beforehand

$tableName = "foo";

$q1 = <<<SQL
SELECT
  CONCAT(
    "SELECT * FROM $tableName WHERE" ,
    GROUP_CONCAT(
      '(' ,
      '`' ,
      column_name,
      '`' ,
      ' is NULL OR ',
      '`' ,
      column_name ,
      '`',
      ' = ""' , ')'
      SEPARATOR ' OR ')
    ) AS foo
FROM
information_schema.columns
WHERE
table_name = "$tableName"

SQL;

$rows = mysql_query($q1);

if ($rows)
{
    $row = mysql_fetch_array($rows);
    $q2 = $row[0];
}

$null_blank_rows = mysql_query($q2);

// process the null / blank rows..

答案 4 :(得分:1)

<?php
    set_time_limit(1000);

    $schematable = "schema.table";

    $desc = mysql_query('describe '.$schematable) or die(mysql_error());

    while ($row = mysql_fetch_array($desc)){

        $field = $row['Field'];
        $result = mysql_query('select * from '.$schematable.' where `'.$field.'` is not null or `'.$field.'` != ""');

        if (mysql_num_rows($result) == 0){
            echo $field.' has no data <br/>';
        }

    }
?>

答案 5 :(得分:0)

$sql = "SELECT * FROM TABLE_PRODUCTS";
$res = mysql_query($sql);

$emptyFields = array();

while ($row = mysql_fetch_array($res)) {
    foreach($row as $key => $field) {
        if(empty($field)) || is_null($field) {
            $emptyFields[] = sprintf('Field "%s" on entry "%d" is empty/null', $key, $row['table_primary_key']);
        }
    }
}

print_r($emptyFields);

没有经过测试,所以它可能有拼写错误,但这是主要想法。 如果您想确切知道哪个列为空或NULL,那就是这样。

此外,在一张非常大的桌子上进行此操作并不是一种非常有效的方法,但是应该快速使用200行长的桌子。也许有更简洁的解决方案来处理应用程序中的空/空字段,这些字段不需要像这样明确地检测它们,但这取决于你想要做什么:)

答案 6 :(得分:0)

检查此代码是否为空字段

function highlightTag(pageSource, tag) {
    var re = new RegExp("(<\/?" + tag + "[^<>]*>)", "g");
    return pageSource.replace(re, "<span class='red'>\"$1\"</span>");
}

答案 7 :(得分:0)

这里我正在使用带有单词单词的表

.ui.items

答案 8 :(得分:0)

没有类似的功能,但是如果允许其他语言,则可以提取表的结构并使用该结构生成查询。 如果只需要一个包含30列的表,则手动编写查询会更快。