我似乎找不到或写一个选择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;
答案 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)
获取关联数组all
中mytable
中$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查询中创建一个更加可定制的,基于默认值的列表。