我有一个包含12列和200行的表。我想使用php / mysql有效地检查此表中的空/空字段。例如。 “(第3栏第30行)是空的”。有功能可以做到吗? 简而言之:SELECT * FROM TABLE_PRODUCTS任何列都有空的字段。
答案 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列的表,则手动编写查询会更快。