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

Bagaimana saya bisa menggunakan CONCAT selama SELECT di MySQL sebagai nama kolom?

Yah, saya harus mengakui bahwa saya butuh beberapa saat untuk memahami apa yang Anda tanyakan. Table2 memiliki 7 kolom s0 hingga s6 dan Anda ingin mendapatkan nilai dari kolom yang cocok dengan tanggal. Ya?

Jadi, tentu saja menggunakan

SELECT CURRENT_DATE(), s2

memberi Anda konten s2, sedangkan

SELECT CURRENT_DATE(), CONCAT('s',DAYOFWEEK(CURRENT_DATE())-1)

memberi Anda 's2'. Akan mengerikan jika tidak. Apakah Anda benar-benar mengharapkan DBMS untuk menghitung nilai dan kemudian memeriksa apakah nilai itu cocok dengan nama kolom? Kemudian

select name, job from person;

akan memilih nama dan pekerjaan orang tersebut dalam banyak kasus tetapi untuk orang yang bernama Job Anda akan mendapatkan pekerjaan itu dua kali. Anda melihat bahwa ini tidak dapat diinginkan, bukan?

Jadi periksa hasil ekspresi Anda dan baca dari kolom yang sesuai:

insert into table_1 (datum, comment)
select 
  current_date(), 
  case dayofweek(current_date()) - 1 
    when 0 then s0
    when 1 then s1
    when 2 then s2
    when 3 then s3
    when 4 then s4
    when 5 then s5
    when 6 then s6
  end
from table_2 where id = 12345;


  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 menambahkan indeks apa dalam tabel di Rails

  2. SUM(subquery) di MYSQL

  3. Bagaimana cara memilih jumlah baris terbatas untuk setiap kunci asing?

  4. Capistrano:Bagaimana cara menyebarkan database MySQL untuk aplikasi PHP?

  5. Perintah Mysql tidak ditemukan di OS X 10.7