Как перенести MySQL REPLACE в TYPO3 QueryBuilder? - PullRequest
2 голосов
/ 14 июня 2019

я рефакторинг довольно древней кодовой базы расширения TYPO3 от pibase до extbase. одна часть состоит в том, чтобы переработать старый подход MySQL из

$GLOBALS["TYPO3_DB"]->sql_query("...")

до

$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('...');

У меня такой запрос, и я не знаю, как это сделать с помощью построителя запросов, и я не нашел что-то в документации

SELECT * FROM $this->db_name.Profs WHERE (REPLACE(RelatedUser, ' ', '-') = '" . ($this->tOnly($name)) . "' OR REPLACE(RelatedUser, ' ', '-') = '" . ($this->tOnly($pre)) . "') AND ((ID NOT IN (" . implode(',', $exclude_ids) . ")) AND ID NOT IN (" . implode(',', $this->locked) . ")) LIMIT 1

каждая часть понятна, как обрабатывать, кроме функции REPLACE - она ​​принимает значение заданной строки и манипулирует этим на лету для сравнения.

любая помощь очень ценится.

...