Saya memiliki tabel bernama bank
dengan tiga kolom: uid
, nick
, balance
.
Saya mencoba membuat kueri yang akan mengembalikan saldo berdasarkan nick, dan saya mendapatkan kesalahan Kolom tidak dikenal ' Alex ' di ' di mana klausa '
ketika saya menggunakan kueri ini:
SELECT b.balance FROM bank AS b WHERE b.nick=`Alex` LIMIT 1
Adakah yang bisa melihat kesalahan yang saya lakukan di sini?
tanda kutip dua (`) digunakan untuk pengenal, seperti nama tabel, nama kolom, dll. Tanda kutip tunggal (') digunakan untuk literal string.
Yang ingin Anda lakukan:
SELECT b.balance FROM bank AS b WHERE b.nick='Alex' LIMIT 1
Atau, untuk lebih jelasnya:
SELECT `b`.`balance` FROM `bank` AS b WHERE `b`.`nick`='Alex' LIMIT 1
Ketika tidak ada kemungkinan ambiguitas, dan ketika nama tabel/kolom tidak memiliki karakter atau spasi khusus, maka Anda dapat membiarkan ` off.
Berikut adalah beberapa dokumentasi yang kering dan sulit dibaca: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
Namun berikut ini adalah pertanyaan terkait di dba.stackoverflow yang lebih mudah dibaca: https://dba.stackexchange.com/questions/23129/benefits-of-using-backtick-in-mysql-queries
Dan ini adalah halaman yang sangat bagus yang saya sarankan untuk dibaca oleh semua orang: http://www.sitepoint.com/forums/showthread.php?408497-the-big-bad-thread-of-quot-MySQL-Best-Practices-and-Other-Useful-Information-quot