2012-04-23 71 views
0

如何从表中获取空记录的列名?例如:在查询中获取列名

SELECT column.name FROM table WHERE id='1111' AND column_name='' 

它应该从表中返回空列的每个标题。

SELECT COLUMN_NAME 
FROM `information_schema`.`COLUMNS` 
WHERE TABLE_NAME='$table_name' 
ORDER BY ORDINAL_POSITION 

注:沙内$表名,以你的表的名称的名称如果用mysql 5.0以上就可以得到一个表的所有列名这样

+2

我不明白你的意思,你能不能精确它吗? – pomeh 2012-04-23 12:28:54

+0

它不能与“正常”的SQL做,除非你疯了,非常狂放 – gdoron 2012-04-23 12:31:46

+1

这看起来像一个糟糕的应用程序设计 – worenga 2012-04-23 12:32:12

回答

0

我会用PHP做它为简单起见,但有可能是一个复杂的MySQL方法在伪做到这一点,在DBMS级别

$result = MYSQL_FETCH_ASSOC (MYSQL_QUERY(SELECT * FROM table WHERE id='1111')) 

$blankCols = array(); 
foreach($result[0] as $key=>$value){ 
    if($value=="") 
    { 
     $blankCols[] = $key; 
    } 
} 

正如我前面提到的,这看起来丑陋看起来像一个糟糕的数据结构设计。

1

+0

他只想要留空的特定记录的列名 – worenga 2012-04-23 12:38:49

1

这也是一个方法:

$mysql_query = mysql_query("describe table"); 
while ($row = mysql_fetch_array($mysql_query)) { 
echo $row[0]."</br>"; 
}