[MySQL] Podzapytanie (z SHOW COLUMNS)

0
SELECT 
  (SELECT Field 
    FROM (SHOW COLUMNS FROM tabela  WHERE Field<>'id'))
  FROM tabela;

lub (podobno też prawidłowo)

SELECT 
  (SHOW COLUMNS FROM tabela  WHERE Field<>'id')
  FROM tabela;

Zapytanie powinno (w Oraclu podobno działa) wyświetlać wszystkie wiersze oraz wszystkie kolumny oprócz 'id'.
Zależy mi, żeby to zrobić w ten sposób, ponieważ zapytanie ma być uniwersalne dla wielu tabel.
Jednak MySQL się buntuje (błąd składni). Jest jakiś sposób, żeby to wykonać? Może MySQL ma coś w zamian co pozwala na takie coś?

0

to co przychodzi mi do glowy (chyba zagwatmane)

mysql> DELIMITER |
mysql> CREATE PROCEDURE bez_id(IN Tab TEXT, IN db TEXT)
    -> BEGIN
    -> SELECT GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TA
BLE_NAME = Tab AND TABLE_SCHEMA=db AND COLUMN_NAME <> 'id' INTO @a;
    -> SET @b = CONCAT('SELECT ',@a,' FROM a');
    -> PREPARE STMT FROM @b;
    -> EXECUTE STMT;
    -> DEALLOCATE PREPARE stmt;
    -> END|
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;
mysql> call bez_id('a','test');
+------+
| text |
+------+
| eee  |
+------+
1 row in set (0.03 sec)

Query OK, 0 rows affected (0.03 sec)

mysql> select * from a;
+------+------+
| id   | text |
+------+------+
| 2    | eee  |
+------+------+
1 row in set (0.00 sec)

mysql>

mozna zbudowac funkcje separujaca i podawac test.id, ewentualnie sprobowac SHOW COLUMNS?? nie wiem jak ?

Ciekawe jak mozna prosciej ... bo to mi sie srednio podoba

1 użytkowników online, w tym zalogowanych: 0, gości: 1