Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PreparedStatement:Kann ich den Spaltennamen als Parameter angeben?

Das wird nicht funktionieren. Die Prepare-Anweisung parst das SQL, sendet es zur Validierung und Kompilierung an die Datenbank. Wenn Fragezeichen Teile des SQL ersetzen könnten, würden Sie den ganzen Punkt der gebundenen Variablen verlieren - Geschwindigkeit und Sicherheit. Sie würden die SQL-Einschleusung wieder einführen und Anweisungen müssten für alle Parameter neu kompiliert werden.

Wäre nicht so etwas wie SELECT * FROM table WHERE c1 = ? OR c2 = ? OR c3 = ? besser sein (natürlich abhängig von Indizes und Tabellengröße).