MySQL :: MySQL 8.4 C API Developer Guide :: 5.4.47 mysql_list_fields() (original) (raw)

The world's most popular open source database

5.4.47 mysql_list_fields()

MYSQL_RES *
mysql_list_fields(MYSQL *mysql,
                  const char *table,
                  const char *wild)

Description

Returns an empty result set for which the metadata provides information about the columns in the given table that match the simple regular expression specified by thewild parameter. wild may contain the wildcard characters % or_, or may be a NULL pointer to match all fields. Callingmysql_list_fields() is similar to executing the query SHOW COLUMNS FROM_`tblname`_ [LIKE_`wild`_].

The information obtained is roughly equivalent to that produced by executing the statement shown here using themysql client, like this:

$> mysql test --column-type-info -e "SELECT * FROM t LIMIT 0"
Field   1:  `c1`
Catalog:    `def`
Database:   `test`
Table:      `t`
Org_table:  `t`
Type:       LONG
Collation:  binary (63)
Length:     11
Max_length: 0
Decimals:   0
Flags:      NUM 

Field   2:  `c2`
Catalog:    `def`
Database:   `test`
Table:      `t`
Org_table:  `t`
Type:       LONG
Collation:  binary (63)
Length:     11
Max_length: 0
Decimals:   0
Flags:      NUM 

$>

It is preferable to use SHOW COLUMNS FROM_`tblname`_ instead ofmysql_list_fields().

You must free the result set withmysql_free_result().

Return Values

A MYSQL_RES result set for success.NULL if an error occurred.

Errors

Example

int i;
MYSQL_RES *tbl_cols = mysql_list_fields(mysql, "mytbl", "f%");

unsigned int field_cnt = mysql_num_fields(tbl_cols);
printf("Number of columns: %d\n", field_cnt);

for (i=0; i < field_cnt; ++i)
{
  /* col describes i-th column of the table */
  MYSQL_FIELD *col = mysql_fetch_field_direct(tbl_cols, i);
  printf ("Column %d: %s\n", i, col->name);
}
mysql_free_result(tbl_cols);