MySQL 쿼리를 가져 와서 각 테이블 이름 앞에 문자열을 삽입해야합니다. 솔루션은 한 줄 일 필요는 없지만 분명히 정규식 문제입니다. 그것은 PHP에서 구현되므로 프로그래밍 로직도 괜찮습니다.RegEx : MySQL 쿼리에서 각 테이블 앞에 문자열 삽입
이유 및 배경 : 테이블 접두사 (예 : 'users'대신 'nx_users')를 허용하도록 코드베이스를 수정하고 있습니다. 따라서 저를 위해 자동화하는 기능을 갖춰야합니다. 모든 쿼리를 찾아서 수동으로 수정할 필요가 없습니다.
예 :
SELECT * FROM users, teams WHERE users.team_id = teams.team_id ORDER BY users.last_name
접두사 'nx_'을 사용하여, 그것은 분명히 같은 테이블 별칭 같은 다른 사건을 처리해야
SELECT * FROM nx_users, nx_ teams WHERE nx_ users.team_id = nx_ teams.team_id ORDER BY nx_ users.last_name
로 변경해야합니다, 조인 및 기타 일반적인 MySQL은 명령.
아무도이 작업을 수행하지 않았습니까?
나는 보통 동의 하겠지만 실제로는 그렇게되는대로 실행되는 솔루션을 의미합니다. 그것은 다른 개발자들이 잘 쓸 웹 애플 리케이션의 일부입니다. 이 기능을 안정적으로 사용할 수 있다면 장기적으로 나에게 더 좋습니다. – Paulo
+1. SQL을 파싱 할 권한이없는 regex에서 특히 * 신뢰할 수있는 * 것을 사용할 수 없습니다. 일부 언어/플랫폼에서는 적절한 SQL 구문 분석기를 사용할 수 있지만 여전히 위험한 제안입니다. – bobince