Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę wybrać * z tabeli w MySQL, ale pominąć niektóre kolumny?

Chociaż wielu twierdzi, że najlepszą praktyką jest jawne wymienienie każdej kolumny, która ma zostać zwrócona, są sytuacje, w których możesz chcieć zaoszczędzić czas i pominąć niektóre kolumny w wynikach (np. testowanie). Poniżej podałem dwie opcje, które rozwiązują ten problem.

1. Utwórz funkcję który pobiera wszystkie żądane nazwy kolumn:( utworzyłem schemat o nazwie funkcje do przechowywania tej funkcji)

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

Utwórz i wykonaj instrukcję select:

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

2. LUB bez pisania funkcji możesz:

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;

*Zastąp test własną nazwą schematu

**Zastąp pracowników własną nazwą stołu

***Zastąp wiek,datęzatrudnienia kolumnami, które chcesz pominąć (możesz pozostawić puste, aby zwrócić wszystkie kolumny lub po prostu wpisać jedną nazwę kolumny, aby pominąć)

** **Możesz dostosować długość varcharów w funkcji do swoich potrzeb



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najlepszy sposób przechowywania Biblii w SQL?

  2. Jak ustawić MySQL jako domyślną bazę danych w Rails 3?

  3. Używanie Solr z MySQL

  4. Błąd MySQL/zapisu pliku (Errcode 28)

  5. JDBC:Wstawianie wartości dat do MySQL