Hướng dẫn get column name mysql - lấy tên cột mysql

Tôi muốn lấy tất cả các tên col của bảng MySQL thành một mảng trong PHP?

Có một truy vấn cho điều này?

Đã hỏi ngày 12 tháng 11 năm 2010 lúc 13:42Nov 12, 2010 at 13:42

Hướng dẫn get column name mysql - lấy tên cột mysql

0

Cách tốt nhất là sử dụng cơ sở dữ liệu ảo thông tin_schema. Cụ thể là bảng thông tin_schema.columns ...

SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename';

Nó rất mạnh mẽ và có thể cung cấp cho bạn hàng tấn thông tin mà không cần phải phân tích văn bản (chẳng hạn như loại cột, cho dù cột có thể không thể, kích thước cột tối đa, bộ ký tự, v.v.) ...

Ồ, và đó là SQL tiêu chuẩn (trong khi

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
9 là tiện ích mở rộng cụ thể của MySQL) ...

Để biết thêm thông tin về sự khác biệt giữa

SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
0 và sử dụng bảng
SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
1, hãy xem tài liệu MySQL trên
SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
1 nói chung ...

Đã trả lời ngày 12 tháng 11 năm 2010 lúc 13:47Nov 12, 2010 at 13:47

IRCMaxELLIRCMAXELLircmaxell

161K33 Huy hiệu vàng260 Huy hiệu bạc313 Huy hiệu Đồng33 gold badges260 silver badges313 bronze badges

11

Bạn có thể sử dụng truy vấn sau cho MySQL:

SHOW `columns` FROM `your-table`;

Dưới đây là mã ví dụ hiển thị cách thực hiện cú pháp trên trong PHP để liệt kê tên của các cột:

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }

Để biết chi tiết về đầu ra của

SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
3, hãy truy cập: MySQL.

Đã trả lời ngày 12 tháng 11 năm 2010 lúc 13:44Nov 12, 2010 at 13:44

Hướng dẫn get column name mysql - lấy tên cột mysql

Bcoscabcoscabcosca

17.1k5 Huy hiệu vàng38 Huy hiệu bạc51 Huy hiệu Đồng5 gold badges38 silver badges51 bronze badges

2

Tôi đã làm điều này trong quá khứ.

SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 

René Höhle

26.1K22 Huy hiệu vàng71 Huy hiệu bạc81 Huy hiệu đồng22 gold badges71 silver badges81 bronze badges

Đã trả lời ngày 5 tháng 3 năm 2012 lúc 2:07Mar 5, 2012 at 2:07

JeffjeffJeff

4035 huy hiệu bạc11 huy hiệu đồng5 silver badges11 bronze badges

Sử dụng

SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
4 để xem tất cả dữ liệu cột. Xem hướng dẫn sử dụng.

$query = 'select * from myfield';
$result = mysql_query($query);
$i = 0;
while ($i < mysql_num_fields($result))
{
   $fld = mysql_fetch_field($result, $i);
   $myarray[]=$fld->name;
   $i = $i + 1;
}

"Cảnh báo phần mở rộng này không được chấp nhận kể từ Php 5.5.0 và sẽ bị xóa trong tương lai."

Hướng dẫn get column name mysql - lấy tên cột mysql

Tony Gil

9.3016 huy hiệu vàng75 Huy hiệu bạc95 Huy hiệu Đồng6 gold badges75 silver badges95 bronze badges

Đã trả lời ngày 7 tháng 5 năm 2013 lúc 22:33May 7, 2013 at 22:33

Hướng dẫn get column name mysql - lấy tên cột mysql

Gavin Simpsongavin SimpsonGavin Simpson

2.7133 huy hiệu vàng29 Huy hiệu bạc36 Huy hiệu đồng3 gold badges29 silver badges36 bronze badges

1

Giải pháp đơn giản nhất trong tất cả các câu trả lời:

DESC `table name`

hoặc

DESCRIBE `table name`

hoặc

SHOW COLUMNS FROM `table name`

Đã trả lời ngày 28 tháng 11 năm 2017 lúc 16:07Nov 28, 2017 at 16:07

Hướng dẫn get column name mysql - lấy tên cột mysql

Gil Baggiogil BaggioGil Baggio

11.7K3 Huy hiệu vàng47 Huy hiệu bạc34 Huy hiệu đồng3 gold badges47 silver badges34 bronze badges

Một hàm PHP cũ "mysql_list_fields ()" không được dùng nữa. Vì vậy, ngày nay, cách tốt nhất để có được tên của các trường là một truy vấn "hiển thị các cột từ TABE_NAME [như 'Tên']". Vì vậy, đây là một ví dụ nhỏ:

$fields = array();
$res=mysql_query("SHOW COLUMNS FROM mytable");
while ($x = mysql_fetch_assoc($res)){
  $fields[] = $x['Field'];
}
foreach ($fields as $f) { echo "
Field name: ".$f; }

Đã trả lời ngày 8 tháng 7 năm 2013 lúc 19:14Jul 8, 2013 at 19:14

Khi bạn muốn kiểm tra cấu trúc bảng tất cả của mình với một số được nộp thì hãy sử dụng mã này. Trong truy vấn này, tôi chọn cột_name, Cột_Type và Table_Name để biết thêm chi tiết. Tôi sử dụng thứ tự theo cột_type để tôi có thể thấy nó dễ dàng.

SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' order by DATA_TYPE;

Nếu bạn chỉ muốn kiểm tra loại kép được nộp thì bạn có thể làm điều đó một cách dễ dàng

SHOW `columns` FROM `your-table`;
0

Hướng dẫn get column name mysql - lấy tên cột mysql

Nếu bạn muốn kiểm tra trường nào cho phép loại null, v.v. thì bạn có thể sử dụng cái này

SHOW `columns` FROM `your-table`;
1

Hướng dẫn get column name mysql - lấy tên cột mysql

Bạn muốn kiểm tra thêm sau đó liên kết Thik cũng giúp bạn.

https://dev.mysql.com/doc/refman/5.7/en/columns-table.html

Đã trả lời ngày 16 tháng 3 năm 2017 lúc 7:20Mar 16, 2017 at 7:20

Shafiqul Hồi giáo Hồi giáoShafiqul Islam

5.4652 Huy hiệu vàng34 Huy hiệu bạc42 Huy hiệu đồng2 gold badges34 silver badges42 bronze badges

1

SHOW `columns` FROM `your-table`;
2

Đã trả lời ngày 4 tháng 10 năm 2013 lúc 17:59Oct 4, 2013 at 17:59

Hướng dẫn get column name mysql - lấy tên cột mysql

Không chắc đây có phải là những gì bạn đang tìm kiếm không, nhưng điều này đã làm việc cho tôi:

SHOW `columns` FROM `your-table`;
3

Đó là trả về một mảng đơn giản của các tên / tên biến cột trong bảng hoặc mảng của bạn dưới dạng chuỗi, đó là những gì tôi cần để xây dựng các truy vấn MySQL tự động. Sự thất vọng của tôi là tôi chỉ đơn giản là không biết làm thế nào để lập chỉ mục các mảng trong PHP rất tốt, vì vậy tôi không chắc chắn phải làm gì với kết quả từ Desc hoặc Show. Hy vọng câu trả lời của tôi là hữu ích cho những người mới bắt đầu như tôi!

Để kiểm tra kết quả:

SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
5

Đã trả lời ngày 22 tháng 12 năm 2015 lúc 22:51Dec 22, 2015 at 22:51

Hướng dẫn get column name mysql - lấy tên cột mysql

Nếu bạn muốn sử dụng chúng cho câu lệnh INSERT sẽ tạo một chuỗi:

SHOW `columns` FROM `your-table`;
4

Đã trả lời ngày 8 tháng 11 năm 2021 lúc 13:27Nov 8, 2021 at 13:27

Hướng dẫn get column name mysql - lấy tên cột mysql

Sam Kihongesam Kihongesam kihonge

1052 Huy hiệu bạc4 Huy hiệu đồng2 silver badges4 bronze badges

Hiển thị các cột trong MySQL 5.1 (không phải 5.5) sử dụng bảng đĩa tạm thời. in mysql 5.1 (not 5.5) uses a temporary disk table.

  • http://dev.mysql.com/doc/refman/5.1/en/internal-temporary-tables.html
  • http://dev.mysql.com/doc/refman/5.1/en/show-columns.html

Vì vậy, nó có thể được coi là chậm cho một số trường hợp. Ít nhất, nó có thể tăng giá trị created_tmp_disk_tables của bạn. Hãy tưởng tượng một bảng đĩa tạm thời trên mỗi kết nối hoặc theo mỗi yêu cầu trang.created_tmp_disk_tables value. Imagine one temporary disk table per connection or per each page request.

Các cột hiển thị không thực sự quá chậm, có thể vì nó sử dụng bộ đệm hệ thống tệp. Phpmyadmin nói ~ 0,5ms một cách nhất quán. Điều này không là gì so với 500ms-1000ms của việc phục vụ một trang WordPress. Nhưng vẫn có những lúc nó quan trọng. Có một sự tham gia của hệ thống đĩa, bạn không bao giờ biết điều gì xảy ra khi máy chủ bận, bộ đệm đã đầy, ổ cứng bị đình trệ, v.v. is not really so slow, possibly because it uses file system cache. Phpmyadmin says ~0.5ms consistently. This is nothing compared to 500ms-1000ms of serving a wordpress page. But still, there are times it matters. There is a disk system involvement, you never know what happens when server is busy, cache is full, hdd is stalled etc.

Truy xuất tên cột thông qua Chọn * từ ... Giới hạn 1 là khoảng ~ 0,1ms và nó cũng có thể sử dụng bộ đệm truy vấn.SELECT * FROM ... LIMIT 1 was around ~0.1ms, and it can use query cache as well.

Vì vậy, đây là mã được tối ưu hóa nhỏ của tôi để lấy tên cột từ một bảng, mà không cần sử dụng các cột hiển thị nếu có thể:show columns if possible:

SHOW `columns` FROM `your-table`;
5

Notes:

  • Miễn là các bảng của bạn hàng đầu tiên không chứa phạm vi dữ liệu megabyte, nó sẽ hoạt động tốt.
  • Hàm có tên DB_ROWS và DB_ROW_AR nên được thay thế bằng thiết lập cơ sở dữ liệu cụ thể của bạn.db_rows and db_row_ar should be replaced with your specific database setup.

Đã trả lời ngày 29 tháng 10 năm 2013 lúc 16:56Oct 29, 2013 at 16:56

JohanjohanJohan

6277 Huy hiệu bạc11 Huy hiệu đồng7 silver badges11 bronze badges

2

Trong WordPress:

SHOW `columns` FROM `your-table`;
6

Đã trả lời ngày 26 tháng 6 năm 2015 lúc 8:28Jun 26, 2015 at 8:28

Hướng dẫn get column name mysql - lấy tên cột mysql

T.ToduaT.ToduaT.Todua

50.2K19 Huy hiệu vàng217 Huy hiệu bạc213 Huy hiệu đồng19 gold badges217 silver badges213 bronze badges

Hãy thử cái này, cá nhân tôi sử dụng nó:

SHOW `columns` FROM `your-table`;
7

Hướng dẫn get column name mysql - lấy tên cột mysql

Đã trả lời ngày 20 tháng 7 năm 2015 lúc 15:21Jul 20, 2015 at 15:21

2

Câu hỏi này đã cũ, nhưng tôi đã có ở đây để tìm cách tìm một truy vấn nhất định tên trường của nó theo cách năng động (không nhất thiết chỉ là các trường của bảng). Và vì mọi người liên tục chỉ ra đây là câu trả lời cho nhiệm vụ được đưa ra trong các câu hỏi liên quan khác, tôi đang chia sẻ cách tôi thấy nó có thể được thực hiện, sử dụng các mẹo của Gavin Simpson:

SHOW `columns` FROM `your-table`;
8

Điều này có thể dễ dàng sửa đổi để chèn tên trường vào một mảng.

Sử dụng đơn giản:

SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
6 có thể cung cấp cho bạn các trường của bất kỳ bảng nào, mà không cần sử dụng
SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
7 hoặc bất kỳ mô -đun PHP bổ sung nào, nếu cần (loại bỏ phần kết xuất dữ liệu).

Hy vọng rằng điều này sẽ giúp người khác.

Đã trả lời ngày 24 tháng 4 năm 2016 lúc 6:39Apr 24, 2016 at 6:39

Nếu bạn sử dụng PHP, hãy sử dụng ý chính này.gist.

Nó có thể nhận được các trường chọn thông tin đầy đủ mà không có kết quả , và tất cả các trường tùy chỉnh như:

SHOW `columns` FROM `your-table`;
9

Nếu trên SQL trả về không có dữ liệu, cũng sẽ nhận được tên trường Aname, BNAME, tên trường khác của B

Chỉ hai dòng:

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
0

Đã trả lời ngày 10 tháng 11 năm 2015 lúc 16:07Nov 10, 2015 at 16:07

Hướng dẫn get column name mysql - lấy tên cột mysql

zhi.yangzhi.yangzhi.yang

4255 Huy hiệu bạc10 Huy hiệu Đồng5 silver badges10 bronze badges

Truy vấn này tìm thấy một danh sách tất cả các cột trong cơ sở dữ liệu mà không phải chỉ định tên bảng. Nó trả về một danh sách các tên cột duy nhất:

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
1

Tuy nhiên, khi tôi chạy truy vấn này trong phpmyadmin, nó đã hiển thị một loạt các lỗi. Tuy nhiên, nó đã làm việc. Vì vậy, sử dụng nó một cách thận trọng.

Đã trả lời ngày 24 tháng 1 năm 2017 lúc 16:27Jan 24, 2017 at 16:27

Nếu bạn chỉ cần tên và loại trường (có lẽ để dễ dàng sao chép vào Excel):

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
2

gỡ bỏ

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
3

Nếu bạn muốn tất cả các loại dữ liệu

Đã trả lời ngày 13 tháng 11 năm 2018 lúc 16:06Nov 13, 2018 at 16:06

Amir Hajihaamir HajihaAmir Hajiha

7366 Huy hiệu bạc18 Huy hiệu Đồng6 silver badges18 bronze badges

Tôi không có chuyên gia, nhưng điều này làm việc cho tôi ..

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
4

Đã trả lời ngày 11 tháng 10 năm 2016 lúc 17:22Oct 11, 2016 at 17:22

Hướng dẫn get column name mysql - lấy tên cột mysql

Ad Kahnad KahnAd Kahn

5214 Huy hiệu bạc6 Huy hiệu đồng4 silver badges6 bronze badges

Tôi đã thử truy vấn này trong SQL Server và điều này đã hoạt động cho tôi:

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
5

Đã trả lời ngày 6 tháng 2 năm 2020 lúc 5:22Feb 6, 2020 at 5:22

Hướng dẫn get column name mysql - lấy tên cột mysql

Purvi Barotpurvi BarotPurvi Barot

2112 Huy hiệu bạc9 Huy hiệu đồng2 silver badges9 bronze badges

Cuộc gọi của

SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
8 đang hoạt động tốt để có được tất cả các cột của bảng nhưng nếu bạn cần lọc trên đó, bạn cần sử dụng
SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 
9 thay thế.

Ví dụ về chức năng PHP để có được tất cả thông tin của một bảng:

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
6

Trong trường hợp của tôi, tôi phải tìm khóa chính của bảng. Vì vậy, tôi đã sử dụng:find the primary key of a table. So, I used :

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
7

Đây là chức năng PHP của tôi:

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
    echo $row['Field']."
"; }
8

Đã trả lời ngày 2 tháng 9 năm 2020 lúc 11:54Sep 2, 2020 at 11:54

MelomanmelomanMeloman

3.2523 huy hiệu vàng39 Huy hiệu bạc44 Huy hiệu đồng3 gold badges39 silver badges44 bronze badges