如何选择字段的DEFAULT值

时间:2011-11-25 09:07:13

标签: php mysql sql phpmyadmin

我似乎找不到或写一个选择DEFAULT VALUE

的sqlquery

(我不认为我可以在phpmyadmin中生成它来复制)

我试图选择它,好像它是一个记录,但无济于事......

 $defaultValue_find = mysql_query(
         "SELECT $group FROM grouptable WHERE $group='DEFAULT'")  
      or die("Query failed:".mysql_error());
 $defaultValue_fetch = mysql_fetch_row($defaultValue_find);
 $defaultValue = $defaultValue_fetch[0];
 echo $defaultValue;

3 个答案:

答案 0 :(得分:11)

"SELECT $group FROM grouptable WHERE $group=DEFAULT( $group ) "

或者我认为更好:

"SELECT DEFAULT( $group ) FROM grouptable LIMIT 1 "

更新 - 更正

正如@Jeff Caron指出的那样,只有在grouptable中至少有一行时,上述内容才有效。如果您想要结果,即使grouptable没有行,也可以使用:

"SELECT DEFAULT( $group ) 
 FROM (SELECT 1) AS dummy
   LEFT JOIN grouptable 
     ON True
 LIMIT 1 ;"

答案 1 :(得分:0)

获取关联数组allmytable$res的{​​{1}}字段的默认值:

// MySQL v.5.7+
$res = [];
$sql = "SHOW FULL COLUMNS FROM `mytable`";
foreach ($PDO->query( $sql, PDO::FETCH_ASSOC ) as $row) {
    $res[$row['Field']] = $row['Default'] ;
}
print_r($res);

答案 2 :(得分:0)

通过查看INFORMATION_SCHEMA.COLUMNS表,您可以获取任何表的默认列,以及有关该表的许多有趣信息。如文档所述...

INFORMATION_SCHEMA提供对数据库元数据的访问,有关MySQL服务器的信息,例如数据库或表的名称,列的数据类型或访问特权。 (来源: MySQL 8.0 Reference Manual / INFORMATION_SCHEMA Tables / Introduction 。)

因此,要获取默认列,只需SELECT COLUMN_DEFAULT,例如...

SELECT COLUMN_DEFAULT
FROM information_schema.columns
WHERE TABLE_SCHEMA = 'YourSchema'
AND TABLE_NAME = 'YourTable' AND 
COLUMN_NAME = 'YourField';

然后可以将其包装到子查询SELECT * FROM YourTable WHERE YourField = (queryabove)中。这样一来,您就可以在MySQL查询中创建一个更加可定制的,基于默认值的列表。