У меня есть аутентификация MySQL для сервера SVN. Конфигурационный файл похож на это:
<Location /svn/project>
...
AuthDBDUserPWQuery "SELECT Password FROM SVNUsers WHERE Nickname = %s"
...
</Location>
Это работает отлично. Но, существует потребность, появившаяся для выборки пользователей от второй таблицы. Сначала, я пытался использовать ОБЪЕДИНЕНИЕ (конечно!). Как это:
AuthDBDUserPWQuery "SELECT Password FROM SVNUsers WHERE Nickname = %s UNION SELECT Password FROM Users WHERE Nickname = %s"
Но, это не работает, потому что у меня есть два %s оператора, и второй не становится замененным псевдонимом. Затем я пытался объявить переменную SQL, записать %s в него и использовать его. Как это:
AuthDBDUserPWQuery "SET @userName = %s; SELECT Password FROM SVNUsers WHERE Nickname = @userName"
Но, AuthDBDUserPWQuery не понимает переменные. Как решить его?
Спасибо!
Решение заключалось в использовании функций MySQL:
AuthDBDUserPWQuery "SELECT SVNAuthenticationFunction(%s) as Password"