@
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)";