[TYPO3-project-4-3]  fe_group SQL-statement,	question out of curiosity
    Niels Fröhling 
    niels.froehling at adsignum.com
       
    Thu Jun 11 19:50:32 CEST 2009
    
    
  
Hy;
I'd like to know why actually the SQL statement for group-enableFields contains
this condition this way:
getMultipleGroupsWhereClause() :=
AND (pages.fe_group='' OR pages.fe_group IS NULL OR pages.fe_group='0' OR
(pages.fe_group LIKE '%,0,%' OR pages.fe_group LIKE '0,%' OR pages.fe_group LIKE
'%,0' OR pages.fe_group='0') OR (pages.fe_group LIKE '%,-1,%' OR pages.fe_group
LIKE '-1,%' OR pages.fe_group LIKE '%,-1' OR pages.fe_group='-1'))
Is there a deeper reason, like an SQL-compatibility issue? Because this can be a
single condition (per group to check for) with 'FIND_IN_SET' and 'FIELD':
getMultipleGroupsWhereClause() :=
  AND (
       FIELD(pages.fe_group, '', '0', NULL) > 0
    OR FIND_IN_SET('0', pages.fe_group) > 0
    OR FIND_IN_SET('-1', pages.fe_group) > 0
  )
  I don't now if it's turns out faster in reality (the 10% speedup aka 2 
microseconds I measured a surely not very deeply evaluated), but it's much more 
readable. :)
Ciao
   Niels
    
    
More information about the TYPO3-project-4-3
mailing list