sql >> Database >  >> RDS >> Mysql

Hoe MySQL-stijl vraagteken `?` gebonden parameters naar Postgres-stijl `$1` gebonden parameter te converteren

NEE. En er is geen directe correspondentie tussen ? en $1 syntaxis, omdat de laatste parameterhergebruik impliceert, terwijl ? staat het niet toe. Gebruik je bijvoorbeeld ? ? ? houdt in dat je 3 opmaakparameters hebt, terwijl $1 $2 $2 houdt in dat je twee opmaakparameters hebt.

Het is niet waarschijnlijk dat, aangezien er geen directe correspondentie is, de conversie slechts in één richting mogelijk is, wat een dergelijk hulpprogramma tamelijk nutteloos zou maken. U kunt alles zelf vervangen, met een enkele reguliere expressie, waarbij u elke ? . vervangt met $ + index + 1 .

Hierin heb je niet echt veel keus. Het moet gedaan worden. Trouwens, $1 is veel flexibeler dan ? , vanwege het hergebruik van parameters, plus optionele uitbreidingen. Bijvoorbeeld pg-promise breidt ze heel mooi uit, met verschillende opmaakmodifiers die vaak nodig zijn:^ , ~ , :json , :csv , enz...

U zult waarschijnlijk minder tijd besteden aan het handmatig converteren van uw SQL dan aan het schrijven van een hulpprogramma voor de juiste eenrichtingsconversie.



  1. MySQL:verwijder rijen die een specifieke parameter bevatten en ouder zijn dan een dag

  2. WooCommerce-producten met het bericht 'Niet op voorraad' wanneer ze niet echt niet op voorraad zijn

  3. Wat is het verschil tussen een hash-join en een merge-join (Oracle RDBMS)?

  4. mysql regex_replace gebruiken met een reguliere expressie