Welcome Guest, Not a member yet? Register   Sign In
Insert round brakets in query builder
#1

(This post was last modified: 04-03-2023, 12:29 AM by pippuccio76.)

hi , hi ave this query builder for a datatable (server side) :
Code:
$records = $macchina_model->select('           
              macchina.id
            , macchina.seriale
            , macchina.codice_macchina
            , documento_arrivo.numero as num_documento_arrivo
            , documento_partenza.numero as num_documento_partenza
            , clienti.nome as nome_cliente
            , macchina.created_at
            , macchina.updated_at
            ' )
            ->join('documento_arrivo','macchina.id_documento_arrivo = documento_arrivo.id','left')
            ->join('documento_partenza','macchina.id_documento_partenza = documento_partenza.id','left')
            ->join('clienti','macchina.id_clienti = clienti.id','left')
            ->orLike('macchina.seriale', $searchValue)
            ->orLike('macchina.codice_macchina', $searchValue)
            ->orLike('documento_arrivo.numero', $searchValue)
            ->orLike('documento_partenza.numero', $searchValue)
            ->orLike('clienti.nome', $searchValue)
            ->orLike('macchina.created_at', $searchValue)
            ->orLike('macchina.updated_at', $searchValue)
            ->orderBy($columnname,$columnSortOrder)
            ->findAll($rowperpage, $start);
Ho can i insert round brackets at or like condition ? because normally it insert macchina.deleted at is null but it control the last liko and macchina.deleted.at.
now rwturn this :
Code:
SELECT
  `macchina`.`id`,
  `macchina`.`seriale`,
  `macchina`.`codice_macchina`,
  `documento_arrivo`.`numero` as `num_documento_arrivo`,
  `documento_partenza`.`numero` as `num_documento_partenza`,
  `clienti`.`nome` as `nome_cliente`,
  `macchina`.`created_at`,
  `macchina`.`updated_at`
FROM
  `macchina`
  LEFT JOIN `documento_arrivo` ON `macchina`.`id_documento_arrivo` = `documento_arrivo`.`id`
  LEFT JOIN `documento_partenza` ON `macchina`.`id_documento_partenza` = `documento_partenza`.`id`
  LEFT JOIN `clienti` ON `macchina`.`id_clienti` = `clienti`.`id`
WHERE
  `macchina`.`seriale` LIKE '%%' ESCAPE '!'
  OR `macchina`.`codice_macchina` LIKE '%%' ESCAPE '!'
  OR `documento_arrivo`.`numero` LIKE '%%' ESCAPE '!'
  OR `documento_partenza`.`numero` LIKE '%%' ESCAPE '!'
  OR `clienti`.`nome` LIKE '%%' ESCAPE '!'
  OR `macchina`.`created_at` LIKE '%%' ESCAPE '!'
  OR `macchina`.`updated_at` LIKE '%%' ESCAPE '!'
  AND `macchina`.`deleted_at` IS NULL
ORDER BY
  `seriale` ASC
LIMIT
  100
i would :
Code:
SELECT
  `macchina`.`id`,
  `macchina`.`seriale`,
  `macchina`.`codice_macchina`,
  `documento_arrivo`.`numero` as `num_documento_arrivo`,
  `documento_partenza`.`numero` as `num_documento_partenza`,
  `clienti`.`nome` as `nome_cliente`,
  `macchina`.`created_at`,
  `macchina`.`updated_at`
FROM
  `macchina`
  LEFT JOIN `documento_arrivo` ON `macchina`.`id_documento_arrivo` = `documento_arrivo`.`id`
  LEFT JOIN `documento_partenza` ON `macchina`.`id_documento_partenza` = `documento_partenza`.`id`
  LEFT JOIN `clienti` ON `macchina`.`id_clienti` = `clienti`.`id`
WHERE
 ( `macchina`.`seriale` LIKE '%%' ESCAPE '!'
  OR `macchina`.`codice_macchina` LIKE '%%' ESCAPE '!'
  OR `documento_arrivo`.`numero` LIKE '%%' ESCAPE '!'
  OR `documento_partenza`.`numero` LIKE '%%' ESCAPE '!'
  OR `clienti`.`nome` LIKE '%%' ESCAPE '!'
  OR `macchina`.`created_at` LIKE '%%' ESCAPE '!'
  OR `macchina`.`updated_at` LIKE '%%' ESCAPE '!')
  AND `macchina`.`deleted_at` IS NULL
ORDER BY
  `seriale` ASC
LIMIT
  100
Reply
#2

you can achieve this by adding $builder->groupStart() and $builder->groupEnd()

for brief instruction  Query Grouping
Learning Codeigniter 
Reply
#3

(04-03-2023, 04:03 AM)SubrataJ Wrote: you can achieve this by adding $builder->groupStart() and $builder->groupEnd()

for brief instruction  Query Grouping



Tank you !!!
Reply




Theme © iAndrew 2016 - Forum software by © MyBB