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

MySQL concat() do tworzenia nazw kolumn do użycia w zapytaniu?

Wcześniej powiedziałem, że nie da się tego zrobić, ale się myliłem. Skończyło się na tym, że sam potrzebowałem czegoś takiego, więc rozejrzałem się i odkryłem, że wyciągi przygotowane po stronie serwera pozwala budować i wykonywać dowolne instrukcje SQL z łańcuchów.

Oto przykład, który właśnie zrobiłem, aby udowodnić tę koncepcję:

set @query := (
  select concat(
    "select",
      group_concat(concat("\n  1 as ", column_name) separator ','),
    "\nfrom dual")
  from information_schema.columns
  where table_name = 'columns')
;
prepare s1 from @query
;
execute s1
;
deallocate prepare s1
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite3 (lub ogólny SQL) pobiera n-ty wiersz wyniku zapytania

  2. Wybierz, gdzie liczba jednego pola jest większa niż jeden

  3. Czy istnieje RZECZYWISTA różnica wydajności między kluczami podstawowymi INT i VARCHAR?

  4. Synchronizuj 2 tabele różnych baz danych - MySQL

  5. wybrani użytkownicy mają więcej niż jeden odrębny rekord w mysql