sql >> Databasteknik >  >> RDS >> Mysql

Hur man konverterar MySQL-stil frågetecken `?` bundna parametrar till Postgres-stil `$1` bundna parameter

NEJ. Och det finns ingen direkt överensstämmelse mellan ? och $1 syntax, eftersom den senare innebär återanvändning av parameter, medan ? tillåter det inte. Använd till exempel ? ? ? innebär att du har 3 formateringsparametrar, medan $1 $2 $2 innebär att du har två formateringsparametrar.

Inte troligt, eftersom det inte finns någon direkt korrespondens, är konverteringen möjlig endast på ett sätt, vilket skulle göra ett sådant verktyg ganska värdelöst. Du kan ersätta allt själv, med ett enda reguljärt uttryck, och ersätta varje ? med $ + index + 1 .

Du har egentligen inte så mycket val i detta. Det måste göras. Dessutom $1 är mycket mer flexibel än ? , på grund av återanvändning av parameter, plus valfria tillägg. Till exempel, pg-promise utökar dem mycket fint, med olika formateringsmodifierare som behövs ofta:^ , ~ , :json , :csv , etc...

Du kommer sannolikt att spendera mindre tid på att konvertera din SQL för hand än på att skriva ett verktyg för enkelriktad konvertering.



  1. Gruppering registrerar timme för timme eller dag för dag och fyller luckor med noll eller noll

  2. Beräkna medelvärde, varians och standardavvikelse för två tal i två olika rader/kolumner med sql / PHP på specifika datum

  3. MYSQL importera data från csv med LOAD DATA INFILE

  4. hur konverterar man mysql subquery i yii CDbCriteria?