Como sabemos no Firebird existe a função LIST() onde a sintaxe fica da seguinte forma.
Exemplo da função List() do Firebird:
SELECT LIST(CLI_ID) AS LISTA FROM CLIENTE;
Porém, necessitei do mesmo recurso para o banco de dados MySQL, para isso utilize a função GROUP_CONCAT(). Veja a sintaxe:
Exemplo da função Group_concat() do MySQL:
SELECT GROUP_CONCAT(distinct CLI_ID) AS LISTA FROM CLIENTE;
* Utilize o distinct antes do campo desejado para que o resultado do campo não repita caso o campo desejado não seje a chave primária.
Ambas consultas nos retornará a lista de IDs separadas por vírgula(Padrão), exemplo:
Resultado do "campo" Lista:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
Ah... Interessante, mas qual a utilização de uma lista dessas???
Com este resultado é possível realizar uma nova consulta de por exemplo contas a receber dos clientes que compõe ou não a lista gerada....
Exemplo da consulta UTILIZANDO (IN) clientes que compõe a Lista:
SELECT * FROM CONTAS_RECEBER WHERE CLI_ID IN (:LISTA);
Exemplo da consulta EXCLUINDO (NOT 'campo' IN) clientes que compõe a Lista:
SELECT * FROM CONTAS_RECEBER WHERE NOT CLI_ID IN (:LISTA);
É isso ai, comentem, compartilhe e sugira novos posts para o Blog! e até a próxima... :)
