Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да конвертирате въпросителен знак `?` в стил MySQL в обвързан параметър в стил Postgres `$1`

НЕ. И няма пряко съответствие между ? и $1 синтаксис, тъй като последното предполага повторно използване на параметър, докато ? не го позволява. Например, като използвате ? ? ? означава, че имате 3 параметъра за форматиране, докато $1 $2 $2 означава, че имате два параметъра за форматиране.

Малко вероятно, тъй като няма пряка кореспонденция, преобразуването е възможно само еднопосочно, което би направило подобна помощна програма доста безполезна. Можете да замените всичко сами, с един регулярен израз, заместващ всеки ? с $ + index + 1 .

Всъщност нямате голям избор в това. Трябва да се направи. Освен това $1 е много по-гъвкав от ? , поради повторното използване на параметри, плюс допълнителни разширения. Например pg-promise ги разширява много добре, с различни модификатори на форматиране, които са необходими често:^ , ~ , :json , :csv и др...

Вероятно ще прекарате по-малко време за преобразуване на SQL на ръка, отколкото за написване на помощна програма за еднопосочното правилно преобразуване.



  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

  2. Вмъкване на няколко реда в таблица с помощта на PHP

  3. ИЗБЕРЕТЕ няколко реда WHERE, отговарящи на две условия

  4. Вход за PHP password_verify

  5. Проверка на MySQL данни при вмъкване