sql >> Database teknologi >  >> RDS >> Mysql

PreparedStatement:Kan jeg angive kolonnenavnet som parameter?

Dette vil ikke virke. Preparations-sætningen parser SQL'en, sender til databasen til validering og kompilering. Hvis spørgsmålstegn kunne erstatte dele af SQL'en, ville du miste hele pointen med bundne variabler - hastighed og sikkerhed. Du ville genindføre SQL-injektion tilbage, og sætninger skal genkompileres for alle parametre.

Ville noget i stil med SELECT * FROM table WHERE c1 = ? OR c2 = ? OR c3 = ? være bedre (selvfølgelig afhængig af indekser og tabelstørrelser).



  1. Django:Bordet findes ikke

  2. Indeksering af booleske felter

  3. Hvorfor vil brug af IN(...) ved valg på indekserede felter dræbe ydeevnen af ​​SELECT-forespørgslen?

  4. Standarder for tilføjelse af dato/klokkeslæt?