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

At-Sign dalam pernyataan SQL sebelum nama kolom

@ tanda adalah variabel dalam SQL.

Di MySQL ini digunakan untuk menyimpan nilai antara menjalankan kueri secara berurutan, atau untuk mentransfer data antara dua kueri yang berbeda.

Contoh

Mentransfer data antara dua kueri

SELECT @biggest:= MAX(field1) FROM atable;
SELECT * FROM bigger_table WHERE field1 > @biggest;

Penggunaan lainnya adalah dalam pemeringkatan, yang tidak didukung oleh MySQL.

Menyimpan nilai untuk menjalankan kueri secara berurutan

INSERT INTO table2
  SELECT @rank := @rank + 1, table1.* FROM table1
  JOIN( SELECT @rank := 0 ) AS init
  ORDER BY number_of_users DESC

Perhatikan bahwa agar ini berfungsi, urutan baris yang diproses dalam kueri harus diperbaiki, mudah untuk melakukan kesalahan ini.

Lihat:
http://dev.mysql .com/doc/refman/5.0/en/user-variables.html
pernyataan penyortiran dan peringkat mysql
http:// www.xaprb.com/blog/2006/12/15/advanced-mysql-user-variable-techniques/

PERBARUI
Kode ini tidak akan pernah berfungsi.
Anda baru saja membuka koneksi sebelumnya dan tidak ada @fields yang disetel.
Jadi saat ini mereka menahan null nilai.
Selain itu, Anda tidak dapat menggunakan @vars untuk menunjukkan nama bidang , Anda hanya gunakan @vars untuk nilai.

$sql1 = "
LOAD DATA LOCAL INFILE 'import.csv'
REPLACE INTO TABLE tablename
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"'
IGNORE 1 LINES
(`normalField`, @field1, @field2, `normalField2`, @field3, @field4)";



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Pengguna MySQL di Linux melalui Command Line

  2. mengimpor file sql ke database menggunakan wamp

  3. Mengapa kueri dieksekusi dari meja kerja mysql membutuhkan waktu lebih lama daripada mengeksekusinya langsung dari cli mysql?

  4. Mengunduh dump MySQL dari baris perintah

  5. Bagaimana cara mengubah tanggal manusia menjadi cap waktu unix di Mysql?