Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa memilih * dari tabel di MySQL tetapi menghilangkan kolom tertentu?

Meskipun banyak yang mengatakan bahwa praktik terbaik adalah secara eksplisit mencantumkan setiap kolom yang ingin Anda kembalikan, ada situasi di mana Anda mungkin ingin menghemat waktu dan menghilangkan kolom tertentu dari hasil (mis. pengujian). Di bawah ini saya telah memberikan dua opsi untuk menyelesaikan masalah ini.

1. Buat Fungsi yang mengambil semua nama kolom yang diinginkan:( Saya membuat skema yang disebut fungsi untuk menampung fungsi ini)

DELIMITER $$

CREATE DEFINER=`root`@`%` FUNCTION `getTableColumns`(_schemaName varchar(100), _tableName varchar(100), _omitColumns varchar(200)) RETURNS varchar(5000) CHARSET latin1
BEGIN
    SELECT GROUP_CONCAT(COLUMN_NAME) FROM information_schema.columns 
    WHERE table_schema = _schemaName AND table_name = _tableName AND FIND_IN_SET(COLUMN_NAME,_omitColumns) = 0 ORDER BY ORDINAL_POSITION;
END

Buat dan jalankan pernyataan pilih:

SET @sql = concat('SELECT ', (SELECT 
functions.getTableColumns('test', 'employees', 'age,dateOfHire')), ' FROM test.employees'); 
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;

2. ATAU tanpa menulis fungsi, Anda dapat:

SET @sql = CONCAT('SELECT ', (SELECT GROUP_CONCAT(COLUMN_NAME) FROM 
information_schema.columns WHERE table_schema = 'test' AND table_name = 
'employees' AND column_name NOT IN ('age', 'dateOfHire')), 
' from test.eployees');  
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;

*Ganti tes dengan nama skema Anda sendiri

**Ganti karyawan dengan nama tabel Anda sendiri

***Ganti age,dateOfHire dengan kolom yang ingin Anda hilangkan (Anda dapat mengosongkannya untuk mengembalikan semua kolom atau cukup masukkan satu nama kolom untuk dihilangkan)

** **Anda dapat menyesuaikan panjang varchars dalam fungsi untuk memenuhi kebutuhan Anda



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kapan menggunakan utf-8 dan kapan menggunakan latin1 di MySQL?

  2. Menggunakan mysql concat() dalam klausa WHERE?

  3. Cara menulis kueri Gabung MySQL

  4. Ambil data dari tabel persimpangan di Yii2

  5. Bagaimana cara mendapatkan rentang integer acak mysql?