Chcę uzyskać typ danych kolumny tabeli mysql.
Pomyślałem, że mogę użyć MYSQLFIELDstruktury, ale były to wyliczone typy pól.
Potem spróbowałem z mysql_real_query()
Błąd, który otrzymuję to query was empty
Jak uzyskać typ danych kolumny?
Chcę uzyskać typ danych kolumny tabeli mysql.
Pomyślałem, że mogę użyć MYSQLFIELDstruktury, ale były to wyliczone typy pól.
Potem spróbowałem z mysql_real_query()
Błąd, który otrzymuję to query was empty
Jak uzyskać typ danych kolumny?
Odpowiedzi:
Możesz użyć tabeli kolumn information_schema :
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name' AND COLUMN_NAME = 'col_name';
SELECT COLUMN_TYPEaby uzyskać dodatkowe informacje.
AND COLUMN_NAME = 'col_name'), chyba że wyświetla nazwę kolumny: SELECT COLUMN_NAME, DATA_TYPE FROM etc..
Poniższe zapytanie zwraca listę informacji o każdym polu, w tym typ pola MySQL. Oto przykład:
SHOW FIELDS FROM tablename
/* returns "Field", "Type", "Null", "Key", "Default", "Extras" */
Zobacz tę stronę podręcznika .
WHERE FIELD = '<your column name>'jeśli chcesz uzyskać informacje o jednej kolumnie.
Większość odpowiedzi to duplikaty, przydatne może być ich pogrupowanie. Zasadniczo zaproponowano dwie proste opcje.
Pierwsza opcja ma 4 różne aliasy, z których niektóre są dość krótkie:
EXPLAIN db_name.table_name;
DESCRIBE db_name.table_name;
SHOW FIELDS FROM db_name.table_name;
SHOW COLUMNS FROM db_name.table_name;
(Uwaga: alternatywnie db_name.table_namemożna użyć drugiego FROM :db_name FROM table_name ).
To daje coś takiego:
+------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| product_id | int(11) | NO | PRI | NULL | |
| name | varchar(255) | NO | MUL | NULL | |
| description | text | NO | | NULL | |
| meta_title | varchar(255) | NO | | NULL | |
+------------------+--------------+------+-----+---------+-------+
Druga opcja jest nieco dłuższa:
SELECT
COLUMN_NAME, DATA_TYPE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'db_name'
AND
TABLE_NAME = 'table_name';
Jest też mniej rozmowny:
+------------------+-----------+
| column_name | DATA_TYPE |
+------------------+-----------+
| product_id | int |
| name | varchar |
| description | text |
| meta_title | varchar |
+------------------+-----------+
Ma jednak tę zaletę, że umożliwia wybór według kolumny za pomocą AND COLUMN_NAME = 'column_name'(lub like).
Aby uzyskać typy danych we wszystkich kolumnach:
describe table_name
lub tylko pojedyncza kolumna:
describe table_name column_name
Użyj poniższego zapytania mysql.
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM information_schema.columns
WHERE table_schema = '<DATABASE NAME>'
AND table_name = '<TABLE NAME>'
AND COLUMN_NAME = '<COLOMN NAME>'
SELECT DATA_TYPE, jak proponują inne odpowiedzi?
Skorzystaj z tego łącza
mysql> SHOW COLUMNS FROM mytable FROM mydb;
mysql> SHOW COLUMNS FROM mydb.mytable;
Mam nadzieję, że to może ci pomóc
Najpierw wybierz bazę danych za pomocą, use testDB;a następnie wykonaj
desc `testDB`.`images`;
-- or
SHOW FIELDS FROM images;
Wynik:

Zapytanie, aby znaleźć wszystkie typy danych kolumn używanych w dowolnej bazie danych
SELECT distinct DATA_TYPE FROM INFORMATION_SCHEMA.columns
WHERE table_schema = '<db_name>' AND column_name like '%';
AND column_name like '%'zbyteczne?
POKAŻ KOLUMNY Z Mytable
Samodzielne, kompletne przykłady są często przydatne.
<?php
// The server where your database is hosted localhost
// The name of your database mydatabase
// The user name of the database user databaseuser
// The password of the database user thesecretpassword
// Most web pages are in utf-8 so should be the database array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
try
{
$pdo = new PDO("mysql:host=localhost;dbname=mydatabase", "databaseuser", "thesecretpassword", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}
catch(PDOException $e)
{
die('Could not connect: ' . $e->getMessage());
}
$sql = "SHOW COLUMNS FROM mytable";
$query = $pdo->prepare($sql);
$query->execute();
$err = $query->errorInfo();
$bug = $err[2];
if ($bug != "") { echo "<p>$bug</p>"; }
while ($row = $query->fetch(PDO::FETCH_ASSOC))
{
echo "<pre>" . print_r($row, true) . "</pre>";
}
/* OUTPUT SAMPLE
Array
(
[Field] => page_id
[Type] => char(40)
[Null] => NO
[Key] =>
[Default] =>
[Extra] =>
)
Array
(
[Field] => last_name
[Type] => char(50)
More ...
*/
?>
phptagiem
ResultSet rs = Sstatement.executeQuery("SELECT * FROM Table Name");
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
System.out.println("resultSet MetaData column Count=" + numberOfColumns);
for (int i = 1; i <= numberOfColumns; i++) {
System.out.println("column number " + i);
System.out.println(rsMetaData.getColumnTypeName(i));
}
javatagiem.
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'SCHEMA_NAME' AND COLUMN_KEY = 'PRI'; WHERE COLUMN_KEY = 'PRI';