Sunnysideup\SearchSimpleSmart\Api\FasterIDLists
turns a query statement of select from MyTable where ID IN (1,,2,3.......999999) into something like: - select from MyTable where ID between 0 and 99 or between 200 and 433 OR - select from MyTable where ID NOT IN (4543)
Synopsis
class FasterIDLists
{
- // members
- protected array $idList = ;
- protected string $className = '';
- protected string $field = 'ID';
- protected bool $isNumber = true;
- protected string $tableName = '';
- private static integer $acceptable_max_number_of_select_statements = 50;
- // methods
- public void __construct()
- public void setIdList()
- public void setField()
- public void setIsNumber()
- public void setTableName()
- public void filteredDatalist()
- public void shortenIdList()
- public void excludeList()
- protected string getTableName()
- protected array findRanges()
Hierarchy
Uses
- SilverStripe\Core\Extensible
- SilverStripe\Core\Injector\Injectable
- SilverStripe\Core\Config\Configurable
Members
private
- $acceptable_max_number_of_select_statements — int
protected
- $className — string
- $field — string
- $idList — array
- $isNumber — Sunnysideup\SearchSimpleSmart\Api\bool
- $tableName — string
Methods
protected
- findRanges() — return value looks like this: [ 0: 3,4,5,6, 1: 8,9,10, 2: 91 3: 100,101 etc...
- getTableName() — get table name for query