[~BUGFIX] Extbase (Persistence): made union statement on comma seperated list use...
authorFelix Oertel <typo3@foertel.com>
Thu, 20 Jan 2011 21:37:36 +0000 (21:37 +0000)
committerFelix Oertel <typo3@foertel.com>
Thu, 20 Jan 2011 21:37:36 +0000 (21:37 +0000)
typo3/sysext/extbase/Classes/Persistence/Storage/Typo3DbBackend.php

index 76ed655..4844d83 100644 (file)
@@ -661,9 +661,7 @@ class Tx_Extbase_Persistence_Storage_Typo3DbBackend implements Tx_Extbase_Persis
                        if (isset($parentKeyFieldName)) {
                                $sql['unions'][$childTableName] = 'LEFT JOIN ' . $childTableName . ' ON ' . $tableName . '.uid=' . $childTableName . '.' . $parentKeyFieldName;
                        } else {
-                               $onStatement = '(' . $tableName . '.' . $columnName . ' LIKE CONCAT(\'%,\',' . $childTableName . '.uid,\',%\')';
-                               $onStatement .= ' OR ' . $tableName . '.' . $columnName . ' LIKE CONCAT(\'%,\',' . $childTableName . '.uid)';
-                               $onStatement .= ' OR ' . $tableName . '.' . $columnName . ' LIKE CONCAT(' . $childTableName . '.uid,\',%\'))';
+                               $onStatement = '(FIND_IN_SET(' . $childTableName . '.uid, ' . $tableName . '.' . $columnName . '))';
                                $sql['unions'][$childTableName] = 'LEFT JOIN ' . $childTableName . ' ON ' . $onStatement;
                        }
                        $className = $this->dataMapper->getType($className, $propertyName);