2008-08-12 59 views
287

Tôi đang cố gắng sử dụng câu lệnh chọn để nhận tất cả các cột từ một bảng MySQL nhất định ngoại trừ một bảng. Có một cách đơn giản để làm điều này?Chọn tất cả các cột ngoại trừ một cột trong MySQL?

EDIT: Có 53 cột trong bảng này (KHÔNG TÔI THIẾT KẾ)

+0

Ngoại trừ một cột ... Tôi cho bạn biết cái nào nên bỏ qua, do đó INFORMATION_SCHEMA.columns là cách. – Alfabravo

+0

Khám phá [câu trả lời này] (http://stackoverflow.com/questions/2365972/how-can-i-select-from-a-table-in-mysql-but-omit-certain-columns/13808457#13808457) nó làm những gì bạn muốn làm! – donL

+5

53 cột? Tôi sẽ dính với SELECT * như Thomas gợi ý trong trường hợp đó ... trừ khi cột phụ đó có một lượng lớn dữ liệu mà sẽ không mong muốn để lấy ...? –

Trả lời

180

Trên thực tế có một cách, bạn cần phải có quyền đương nhiên để làm điều này ...

SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), '<columns_to_omit>,', '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<table>' AND TABLE_SCHEMA = '<database>'), ' FROM <table>'); 

PREPARE stmt1 FROM @sql; 
EXECUTE stmt1; 

Thay <table>, <database> and <columns_to_omit>

+12

báo trước: Truy vấn INFORMATION_SCHEMA có hiệu suất khá kém, vì vậy hãy cẩn thận loại truy vấn này không nằm trong đường dẫn quan trọng đối với bất kỳ điều gì. –

+6

Giống như @Jan Koritak nói dưới đây, câu trả lời này không thực sự hoạt động nếu các cột của tiêu đề mà bạn muốn xóa cũng là một chuỗi phụ của tiêu đề cho bất kỳ cột nào bạn muốn giữ. [Có một câu trả lời tốt hơn là tương tự như điều này có thể được tìm thấy ở đây] (http://stackoverflow.com/questions/2365972/how-can-i-select-from-a-table-in-mysql-but- omit-certain-columns/13808457 # 13808457). – donL

+0

Điều này có hiệu quả với chế độ xem mysql không? –

22

Để theo sự hiểu biết của tôi, không có. Bạn có thể làm điều gì đó như:

SELECT col1, col2, col3, col4 FROM tbl 

và chọn thủ công các cột bạn muốn. Tuy nhiên, nếu bạn muốn có nhiều cột, thì bạn có thể chỉ muốn thực hiện:

và chỉ bỏ qua những gì bạn không muốn.

Trong trường hợp cụ thể của bạn, tôi xin đề nghị:

SELECT * FROM tbl 

trừ khi bạn chỉ muốn có một vài cột. Nếu bạn chỉ muốn bốn cột, thì:

SELECT col3, col6, col45, col 52 FROM tbl 

sẽ ổn, nhưng nếu bạn muốn 50 cột, thì bất kỳ mã nào khiến truy vấn trở nên quá khó đọc.

+2

Chọn * luôn là lựa chọn tồi. Không khuyên bạn nên nó. Đọc về lý do tại sao nó là một Antipattern SQl. – HLGEM

28

Bạn có thể làm:

SELECT column1, column2, column4 FROM table WHERE whatever 

mà không nhận được cột3, mặc dù có lẽ bạn đang tìm kiếm một giải pháp tổng quát hơn?

+14

+1 để chống lại downvote.Trong khi đây là một câu trả lời ngây thơ, nó là hoàn toàn chính xác và tôi nghĩ đủ điều kiện là "một cách đơn giản để làm điều này". –

+0

Đồng ý với Daniel Pryden, nó tuân theo nguyên tắc KISS ... –

+3

@DanielPryden, nó thực sự là một câu trả lời đúng hơn so với những người bình chọn cao hơn. Nó không phải là ngây thơ. – HLGEM

11

Nếu cột mà bạn không muốn chọn có lượng dữ liệu lớn trong đó và bạn không muốn bao gồm nó do vấn đề tốc độ và bạn thường xuyên chọn các cột khác, tôi khuyên bạn nên tạo một bảng mới với một trường mà bạn thường không chọn với một khóa vào bảng gốc và loại bỏ trường khỏi bảng gốc. Tham gia các bảng khi trường bổ sung đó thực sự là bắt buộc.

32

Chế độ xem có hoạt động tốt hơn trong trường hợp này không?

CREATE VIEW vwTable 
as 
SELECT 
    col1 
    , col2 
    , col3 
    , col.. 
    , col53 
FROM table 
3

Tôi đồng ý rằng nó không phải là đủ để Select *, nếu đó là một trong những bạn không cần, như đã đề cập ở những nơi khác, là một BLOB, bạn không muốn có mà leo overhead trong.

Tôi sẽ tạo một chế độ xem với dữ liệu bắt buộc, sau đó bạn có thể Select * thoải mái - nếu phần mềm cơ sở dữ liệu hỗ trợ chúng. Khác, đưa dữ liệu khổng lồ vào một bảng khác.

1

Nếu cột này luôn giống nhau, thì bạn có thể tạo chế độ xem không có cột đó.

Nếu không, tôi không nghĩ vậy.

4

Thực tiễn tốt là chỉ định các cột mà bạn đang truy vấn ngay cả khi bạn truy vấn tất cả các cột.

Vì vậy, tôi khuyên bạn nên viết tên của từng cột trong câu lệnh (không bao gồm cột bạn không muốn).

SELECT 
    col1 
    , col2 
    , col3 
    , col.. 
    , col53 

FROM table 
+0

tại sao là "thực hành tốt"? – user13276

+0

Nó hoạt động như một hợp đồng với mã và khi nhìn vào truy vấn, bạn biết chính xác dữ liệu nào bạn có thể trích xuất từ ​​nó mà không cần nhìn vào lược đồ của bảng. – mbillard

+6

@kodecraft: Thực hành tốt cho cùng một lý do là thực hành tốt để luôn trả về cùng một loại từ một hàm (ngay cả khi bạn làm việc bằng ngôn ngữ không được thực thi). Về cơ bản chỉ là Nguyên tắc Ít ngạc nhiên nhất. –

3

Lúc đầu, tôi nghĩ bạn có thể sử dụng cụm từ thông dụng, nhưng như tôi đã đọc MYSQL docs có vẻ như bạn không thể. Nếu tôi là bạn, tôi sẽ sử dụng một ngôn ngữ khác (chẳng hạn như PHP) để tạo danh sách các cột bạn muốn nhận, lưu trữ nó dưới dạng một chuỗi và sau đó sử dụng nó để tạo ra SQL.

2

Khi tôi đồng ý với câu trả lời của Thomas (+1;)), tôi muốn thêm báo trước rằng tôi sẽ giả định cột mà bạn không muốn chứa hầu như không có bất kỳ dữ liệu nào. Nếu nó chứa một lượng lớn văn bản, xml hoặc các đốm màu nhị phân, hãy dành thời gian để chọn từng cột riêng lẻ. Hiệu suất của bạn sẽ bị ảnh hưởng khác. Chúc mừng!

1

Bạn có thể sử dụng SQL để tạo SQL nếu bạn thích và đánh giá SQL mà nó tạo ra. Đây là một giải pháp chung vì nó trích xuất các tên cột từ lược đồ thông tin. Đây là một ví dụ từ dòng lệnh Unix.

Thay

  • MYSQL với lệnh mysql của bạn
  • TABLE với tên bảng
  • EXCLUDEDFIELD với tên trường loại trừ
echo $(echo 'select concat("select ", group_concat(column_name) , " from TABLE") from information_schema.columns where table_name="TABLE" and column_name != "EXCLUDEDFIELD" group by "t"' | MYSQL | tail -n 1) | MYSQL 

Bạn sẽ thực sự chỉ cần giải nén các tên cột theo cách này chỉ một lần để xây dựng t danh sách cột loại trừ cột đó, và sau đó chỉ sử dụng truy vấn bạn đã xây dựng.

Vì vậy, một cái gì đó như:

column_list=$(echo 'select group_concat(column_name) from information_schema.columns where table_name="TABLE" and column_name != "EXCLUDEDFIELD" group by "t"' | MYSQL | tail -n 1) 

Bây giờ bạn có thể tái sử dụng các $column_list chuỗi trong các truy vấn bạn xây dựng.

2

Chỉ cần làm

SELECT * FROM table WHERE whatever 

Sau đó thả các cột trong ngôn ngữ lập trình yêu thích của bạn: php

while (($data = mysql_fetch_array($result, MYSQL_ASSOC)) !== FALSE) { 
    unset($data["id"]); 
    foreach ($data as $k => $v) { 
     echo"$v,"; 
    }  
} 
+0

là hiệu quả này – Gowri

+4

Trừ khi cột bạn muốn loại trừ là một BLOB lớn hoặc một cái gì đó. –

+0

Điều này là xấu nếu bạn đang cố gắng tránh các dữ liệu bị lãng phí. –

2

Có, mặc dù nó có thể cao I/O tùy thuộc vào bảng ở đây là một workaround tôi tìm thấy cho nó.

Select * 
into #temp 
from table 

alter table #temp drop column column_name 

Select * 
from #temp 
+0

Điều này sẽ rất chậm đối với bất kỳ bảng có kích thước vừa phải nào. – Joel

33

Trong định nghĩa mysql (thủ công) không có điều gì như vậy. Nhưng nếu bạn có một số thực sự lớn của cột col1 ..., col100, sau đây có thể hữu ích:

mysql> CREATE TEMPORARY TABLE temp_tb SELECT * FROM orig_tb; 
mysql> ALTER TABLE temp_tb DROP col_x; 
mysql> SELECT * FROM temp_tb; 
+1

Đã gửi cho tôi thông báo lỗi trên bước thứ ba: "Số lượng cột không khớp với số lượng giá trị ở hàng 1". Vì vậy, tôi đã thay đổi bước 2 thành "UPDATE temp_tb SET id = NULL" và sau đó nó hoạt động. – oyvey

4

Tôi đồng ý với giải pháp "đơn giản" của liệt kê tất cả các cột, nhưng điều này có thể nặng nề và lỗi chính tả có thể gây ra rất nhiều thời gian lãng phí. Tôi sử dụng một hàm "getTableColumns" để lấy tên của các cột thích hợp cho việc dán vào một truy vấn. Sau đó, tất cả những gì tôi cần làm là xóa những thứ tôi không muốn.

CREATE FUNCTION `getTableColumns`(tablename varchar(100)) 
      RETURNS varchar(5000) CHARSET latin1 
BEGIN 
    DECLARE done INT DEFAULT 0; 
    DECLARE res VARCHAR(5000) DEFAULT ""; 

    DECLARE col VARCHAR(200); 
    DECLARE cur1 CURSOR FOR 
    select COLUMN_NAME from information_schema.columns 
    where [email protected] AND TABLE_SCHEMA="yourdatabase" ORDER BY ORDINAL_POSITION; 
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; 
    OPEN cur1; 
    REPEAT 
     FETCH cur1 INTO col; 
     IF NOT done THEN 
      set res = CONCAT(res,IF(LENGTH(res)>0,",",""),col); 
     END IF; 
    UNTIL done END REPEAT; 
    CLOSE cur1; 
    RETURN res; 

Kết quả của bạn trả về một chuỗi dấu phẩy phân cách, ví dụ ...

col1, col2, col3, col4, ... col53

+0

[Đây là câu trả lời cho thấy một hàm hoàn thành cùng một điều nhưng đơn giản hơn nhiều] (http://stackoverflow.com/questions/2365972/how-can-i-select-from-a-table-in-mysql -but-omit-certain-columns/13808457 # 13808457)! – donL

6

vấn đề chính của tôi là nhiều các cột tôi nhận được khi tham gia các bảng. Mặc dù đây không phải là câu trả lời cho câu hỏi của bạn (cách chọn tất cả các cột nhất định từ một bảng), tôi cho rằng bạn có thể chỉ định table. để nhận tất cả các cột từ một bảng cụ thể thay vì chỉ định .

Dưới đây là một ví dụ về cách này có thể rất hữu ích:

 
select users.*, phone.meta_value as phone, zipcode.meta_value as zipcode 

from users 

left join user_meta as phone 
on ((users.user_id = phone.user_id) AND (phone.meta_key = 'phone')) 

left join user_meta as zipcode 
on ((users.user_id = zipcode.user_id) AND (zipcode.meta_key = 'zipcode')) 

Kết quả là tất cả các cột từ bảng người dùng, và hai cột bổ sung đã được tham gia từ bảng meta.

+2

cảm ơn bạn, tôi cần phải chọn tất cả các cột của bảng đầu tiên và chỉ có một trường từ bảng thứ hai tham gia và câu trả lời của bạn đã giúp tôi. –

2

Câu trả lời đăng bởi Mahomedalid có một vấn đề nhỏ:

Bên thay thế mã hàm được thay thế "<columns_to_delete>," bởi "", thay thế này có một vấn đề nếu trường để thay thế là người cuối cùng trong chuỗi concat do cho người cuối cùng không có dấu phẩy "," và không bị xóa khỏi chuỗi.

đề nghị của tôi:

SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), 
        '<columns_to_delete>', '\'FIELD_REMOVED\'') 
      FROM INFORMATION_SCHEMA.COLUMNS 
      WHERE TABLE_NAME = '<table>' 
      AND TABLE_SCHEMA = '<database>'), ' FROM <table>'); 

Thay <table>, <database> và '

Cột loại bỏ được thay thế bằng chuỗi "FIELD_REMOVED" trong trường hợp của tôi làm việc này bởi vì tôi đã cố gắng để nhớ an toàn. (Trường tôi đang xóa là BLOB khoảng 1MB)

5

Tôi thích câu trả lời từ @Mahomedalid ngoài thông tin này được thông báo trong phần bình luận từ @Bill Karwin. Các vấn đề có thể được nêu ra bởi @Jan Koritak là sự thật tôi phải đối mặt với điều đó nhưng tôi đã tìm thấy một thủ thuật cho điều đó và chỉ muốn chia sẻ nó ở đây cho bất cứ ai phải đối mặt với vấn đề này.

chúng ta có thể thay thế các REPLACE chức năng với mệnh đề where trong sub-query của tuyên bố đã chuẩn bị như thế này:

Sử dụng bàn của tôi và tên cột

SET @SQL = CONCAT('SELECT ', (SELECT GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'users' AND COLUMN_NAME NOT IN ('id')), ' FROM users'); 
PREPARE stmt1 FROM @SQL; 
EXECUTE stmt1; 

Vì vậy, điều này sẽ loại trừ chỉ trường id nhưng không phải company_id

Hy vọng điều này sẽ giúp mọi người tìm kiếm giải pháp.

Trân

2

Dựa trên câu trả lời @Mahomedalid, tôi đã thực hiện một số cải tiến để hỗ trợ "chọn tất cả các cột ngoại trừ một số trong mysql"

SET @database = 'database_name'; 
SET @tablename = 'table_name'; 
SET @cols2delete = 'col1,col2,col3'; 

SET @sql = CONCAT(
'SELECT ', 
(
    SELECT GROUP_CONCAT(IF(FIND_IN_SET(COLUMN_NAME, @cols2delete), NULL, COLUMN_NAME)) 
    FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tablename AND TABLE_SCHEMA = @database 
), 
' FROM ', 
@tablename); 

SELECT @sql; 

Nếu bạn làm có rất nhiều màu sắc, sử dụng sql này để thay đổi group_concat_max_len

SET @@group_concat_max_len = 2048; 
-1

Im khá muộn vào ban throing ra một câu trả lời cho điều này, đưa đây là cách tôi đã luôn luôn thực hiện nó và thẳng thắn, nó 100 lần tốt hơn và gọn gàng hơn thứ e câu trả lời tốt nhất, tôi chỉ hy vọng ai đó sẽ nhìn thấy nó. Và tìm thấy nó hữu ích

//create an array, we will call it here. 
    $here = array(); 
    //create an SQL query in order to get all of the column names 
    $SQL = "SHOW COLUMNS FROM Table"; 
     //put all of the column names in the array 
     foreach($conn->query($SQL) as $row) { 
      $here[] = $row[0]; 
     } 
    //now search through the array containing the column names for the name of the column, in this case i used the common ID field as an example 
    $key = array_search('ID', $here); 
    //now delete the entry 
    unset($here[$key]); 
+0

Nó có thể gọn gàng, nhưng nó không trả lời câu hỏi: anh ta không hỏi về php, và bạn không đưa ra câu lệnh chọn hoặc kết quả của những gì anh ta muốn, nhưng chỉ có một mảng php chứa các cột anh ta muốn. – gou1

+2

–1.Đây không phải là mã SQL, và không có câu lệnh 'SELECT' nào ở đây — từ đó thậm chí không xuất hiện một lần. – Frungi

+0

-1 Không trả lời câu hỏi. – YahyaE

3

Tôi cũng muốn điều này vì vậy tôi đã tạo một hàm thay thế.

public function getColsExcept($table,$remove){ 
    $res =mysql_query("SHOW COLUMNS FROM $table"); 

    while($arr = mysql_fetch_assoc($res)){ 
     $cols[] = $arr['Field']; 
    } 
    if(is_array($remove)){ 
     $newCols = array_diff($cols,$remove); 
     return "`".implode("`,`",$newCols)."`"; 
    }else{ 
     $length = count($cols); 
     for($i=0;$i<$length;$i++){ 
      if($cols[$i] == $remove) 
       unset($cols[$i]); 
     } 
     return "`".implode("`,`",$cols)."`"; 
    } 
} 

Vậy làm thế nào nó hoạt động mà bạn nhập bảng, sau đó một cột bạn không muốn hoặc là trong một mảng: array ("id", "tên", "whatevercolumn")

Vì vậy, trong chọn bạn có thể sử dụng nó như thế này:

mysql_query("SELECT ".$db->getColsExcept('table',array('id','bigtextcolumn'))." FROM table"); 

hoặc

mysql_query("SELECT ".$db->getColsExcept('table','bigtextcolumn')." FROM table"); 
28

Nếu bạn đang tìm kiếm để loại trừ giá trị của một lĩnh vực, ví dụ như đối với mối quan tâm về bảo mật/thông tin nhạy cảm, bạn có thể truy xuất cột đó dưới dạng null.

ví dụ:

SELECT *, NULL AS salary FROM users 
+9

Tại sao? Nó không hoạt động. Nếu bạn có một mức lương cột, truy vấn này sẽ chỉ kết thúc với kết quả có hai cột có tên là lương, một đầy đủ các null và một với lương thực tế. – Myforwik

+3

@Myforwik Truy vấn này thực sự thêm cột 'lương' thứ hai. Nhưng kể từ khi nó được lấy ra sau khi *, nó ghi đè lên bản gốc. Nó không đẹp, nhưng nó hoạt động. –

+0

Bạn nói đúng, @SeanO - Tôi cũng không nhận ra rằng nó đã thay thế cột gốc. Rât gọn gang! – Alastair

12

Trong khi thử các giải pháp của @Mahomedalid và @Junaid tôi đã tìm thấy sự cố. Vì vậy, nghĩ đến việc chia sẻ nó. Nếu tên cột có dấu cách hoặc dấu gạch nối như đăng ký thì truy vấn sẽ không thành công. Cách giải quyết đơn giản là sử dụng backtick xung quanh tên cột. Truy vấn sửa đổi dưới

SET @SQL = CONCAT('SELECT ', (SELECT GROUP_CONCAT(CONCAT("`", COLUMN_NAME, "`")) FROM 
INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'users' AND COLUMN_NAME NOT IN ('id')), ' FROM users'); 
PREPARE stmt1 FROM @SQL; 
EXECUTE stmt1; 
+0

Đây là câu trả lời tôi tự đưa ra, sau khi câu trả lời được chấp nhận không hoạt động. – cazgp

2

Có thể là tôi có một giải pháp để Jan Koritak của chỉ ra sự khác biệt

SELECT CONCAT('SELECT ', 
(SELECT GROUP_CONCAT(t.col) 
FROM 
(
    SELECT CASE 
    WHEN COLUMN_NAME = 'eid' THEN NULL 
    ELSE COLUMN_NAME 
    END AS col 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE TABLE_NAME = 'employee' AND TABLE_SCHEMA = 'test' 
) t 
WHERE t.col IS NOT NULL) , 
' FROM employee'); 

Bảng:

SELECT table_name,column_name 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'employee' AND TABLE_SCHEMA = 'test' 

====== ==========================

table_name column_name 
employee eid 
employee name_eid 
employee sal 

================================

Query Result:

'SELECT name_eid,sal FROM employee' 
1

Tôi muốn thêm một quan điểm khác để giải quyết vấn đề này, đặc biệt nếu bạn có một số lượng nhỏ các cột cần xóa.

Bạn có thể sử dụng công cụ DB như MySQL Workbench để tạo câu lệnh chọn cho bạn, vì vậy bạn chỉ phải xóa các cột đó cho câu lệnh được tạo theo cách thủ công và sao chép nó vào tập lệnh SQL của bạn.

Trong MySQL Workbench cách để tạo ra nó là:

Nhấp chuột phải vào bảng -> gửi đến Sql Editor -> Select All Tuyên Bố.

-4

Chọn * là một mẫu đối tượng SQL. Nó không nên được sử dụng trong mã sản xuất vì nhiều lý do bao gồm:

Mất một chút thời gian để xử lý. Khi mọi thứ được chạy hàng triệu lần, những bit nhỏ đó có thể quan trọng. Một cơ sở dữ liệu chậm mà sự chậm chạp được gây ra bởi loại mã hóa cẩu thả này là loại khó nhất để điều chỉnh hiệu suất.

Điều đó có nghĩa là bạn có thể đang gửi nhiều dữ liệu hơn mức bạn cần gây ra cả tắc nghẽn mạng máy chủ và mạng. Nếu bạn có tham gia bên trong, cơ hội gửi nhiều dữ liệu hơn mức bạn cần là 100%.

Nó gây ra vấn đề bảo trì đặc biệt là khi bạn đã thêm các cột mới mà bạn không muốn thấy ở khắp mọi nơi. Hơn nữa nếu bạn có một cột mới, bạn có thể cần phải làm một cái gì đó để giao diện để xác định phải làm gì với cột đó.

Nó có thể phá vỡ quan điểm (Tôi biết điều này là đúng trong máy chủ SQL, nó có thể hoặc có thể không đúng trong mysql).

Nếu ai đó đủ ngớ ngẩn để xây dựng lại các bảng với các cột theo thứ tự khác nhau (bạn không nên làm điều đó nhưng nó xảy ra tất cả thời gian), tất cả các loại mã có thể bị hỏng. Mã đặc biệt cho một chèn ví dụ, nơi đột nhiên bạn đang đặt thành phố vào trường address_3 bởi vì không có chỉ định, cơ sở dữ liệu chỉ có thể đi theo thứ tự của các cột. Điều này là xấu đủ khi các loại dữ liệu thay đổi nhưng tồi tệ hơn khi các cột hoán đổi có cùng kiểu dữ liệu vì bạn có thể đi đôi khi chèn dữ liệu xấu là một mớ hỗn độn để làm sạch. Bạn cần phải quan tâm đến tính toàn vẹn của dữ liệu.

Nếu nó được sử dụng trong chèn, nó sẽ phá vỡ chèn nếu một cột mới được thêm vào trong một bảng nhưng không phải là cột khác.

Nó có thể làm hỏng trình kích hoạt. Vấn đề kích hoạt có thể khó chẩn đoán.

Thêm tất cả điều này vào thời gian cần để thêm vào tên cột (heck bạn thậm chí có thể có giao diện cho phép bạn kéo qua các tên cột (tôi biết mình làm trong SQL Server, tôi đặt cược ở đó Chúng ta hãy xem, "Tôi có thể gây ra vấn đề bảo trì, tôi có thể gây ra vấn đề hiệu suất và tôi có thể gây ra vấn đề toàn vẹn dữ liệu, nhưng hey tôi đã lưu năm phút của thời gian dev. . "thực sự chỉ cần đặt trong các cột cụ thể mà bạn muốn

tôi cũng đề nghị bạn đọc cuốn sách này:. http://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers-ebook/dp/B00A376BB2/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1389896688&sr=1-1&keywords=sql+antipatterns

2

Thống nhất về @ câu trả lời Mahomedalid của Nhưng tôi không muốn làm someth ing như tuyên bố chuẩn bị và tôi không muốn gõ tất cả các lĩnh vực. Vì vậy, tôi đã có một giải pháp ngớ ngẩn. Chuyển đến bảng trong phpmyadmin-> sql-> chọn, nó đổ bản sao truy vấn thay thế và hoàn tất! :)

+0

Dao cạo Ockam. Cảm ơn :) – a20

+0

đơn giản nhưng thanh lịch – Paolo

Các vấn đề liên quan