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

Melarikan diri dari garis miring dalam nama SQL? Itu dapat diloloskan, tetapi SQL percaya itu adalah beberapa kolom

Di SQL Server, pengidentifikasi dapat dibatasi menggunakan tanda kurung siku, mis.

SELECT [gallons/units] ...

Di MySQL, pengidentifikasi dapat dibatasi menggunakan backticks, mis.

SELECT `gallons/units` ...

(CATATAN:Jika MySQL SQL_MODE termasuk ANSI_QUOTES , kemudian tanda kutip ganda diperlakukan sebagai pembatas untuk pengidentifikasi, mirip dengan cara Oracle menangani tanda kutip ganda; tidak ada pengaturan itu, tanda kutip ganda ditangani sebagai pembatas untuk literal string. Dengan ANSI_QUOTES termasuk SQL_MODE , "gallons/units" akan ditafsirkan sebagai pengenal (nama kolom). Tanpa ANSI_QUOTES , MySQL akan melihatnya sebagai string literal, seolah-olah diapit oleh tanda kutip tunggal.)

TINDAK LANJUT:

Sejauh kesalahan "operand should contain only 1 column(s)" , itu biasanya masalah dengan semantik kueri, bukan masalah dengan meloloskan pengenal.

Subquery dalam daftar SELECT hanya dapat mengembalikan satu ekspresi, misalnya, ini akan menimbulkan kesalahan:

Query: SELECT 'foo' , ( SELECT 'fee' AS fee, 'fi' AS fi )

Error Code: 1241
Operand should contain 1 column(s)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL Jika pernyataan dalam transaksi menyebabkan kesalahan

  2. Menggunakan HQL dengan MySQL bagaimana saya bisa memesan hasil yang ditetapkan sebelum grup sehingga catatan yang tepat diambil?

  3. unggah banyak file ke server, dan tulis ke database

  4. Cara memformulasi ulang kueri sql

  5. Alternatif untuk PDO::lastInsertId / mysql_insert_id