如何检查mysql表列是否存在?

11 php mysql

如何检查mysql表字段是否存在?

列名是'price',我需要查看它是否存在.

还没有真正理解'EXISTS'是如何工作的......

任何例子或想法?

谢谢

小智 23

在PHP中:

$fields = mysql_list_fields('database_name', 'table_name');
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++) {$field_array[] = mysql_field_name($fields, $i);}

if (!in_array('price', $field_array))
{
$result = mysql_query('ALTER TABLE table_name ADD price VARCHAR(10)');
}
Run Code Online (Sandbox Code Playgroud)

这也应该对你有所帮助:

IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ‘TEST’ AND COLUMN_NAME = ‘TEST_DATE’)
BEGIN
  ALTER TABLE TEST ADD TEST_DATE DATETIME
END
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做:

Show columns from table like 'string';
Run Code Online (Sandbox Code Playgroud)

此前在SO上提出了类似的问题.