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

Lewati nomor sebagai nama kolom dalam pernyataan pilih Sql

Anda memilih nilai literal string '5' untuk setiap baris di tabel Anda:

select 5 from mytable_name;

Dan ini bekerja dengan baik. Karena di SELECT pernyataan yang dapat Anda pilih:

  • Referensi kolom,
  • Nilai literal seperti dalam kasus Anda.
  • Fungsi.
  • ekspresi nilai.
  • Pilih ekspresi.

Seperti yang didefinisikan oleh SQL standar:

Pembaruan:

Namun, Jika Anda memiliki kolom dengan nama nomor seperti dalam kasus Anda, Anda harus menghindarinya untuk memilih nilai di dalamnya seperti ini:

 SELECT `143` FROM Table1;

Ini akan memilih semua baris di kolom 143 .

Tapi, ini:

 SELECT 143 FROM Table1;

Akan memilih string literal 143 untuk setiap baris yang ditemukan dalam tabel.

Perhatikan bahwa: Jika memungkinkan, cobalah untuk tidak menamai kolom-kolom ini dengan cara ini, ini disarankan dan merupakan praktik terbaik, jangan lakukan ini.

Demo Fiddle SQL

Pembaruan 2:

Perhatikan bahwa, jika Anda memilih 143 atau '143' , atau bahkan "143" ini akan memilih nilai literal 143 bukan tanggal kolom. Berikut ini adalah sama:

SELECT 143 FROM Table1;
SELECT '143' FROM Table1;
SELECT "143" FROM Table1;

Semua SELECT s tidak akan memilih data di kolom, Mereka akan memilih nilai literal 143 bukan data kolom. Lihat demo ini:

Demo

Anda harus keluar dari nama kolom dengan dua:

``

Seperti ini:

SELECT `143` FROM table1;

Bukan:

SELECT '143' FROM table1'

Seperti yang saya lakukan di sini:

Demo yang tepat



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan MySQL:Menggunakan UNION dan mendapatkan nomor baris sebagai bagian dari SELECT

  2. Hitung semua simpul anak dari data hierarkis dalam sebuah tabel

  3. kesalahan mysql:sub-kueri mengembalikan lebih dari 1 baris

  4. Permintaan mysql menggunakan di mana dan kelompokkan dengan klausa

  5. Masalah indeks MySQL FULLTEXT