que utiliza una variable llamada @a, para almacenar los identificadores, en el extremo que tiene los valores de la variable o intenta con un límite, para agrupar por, como esto:
mysql> show create table actor\G
*************************** 1. row ***************************
Table: actor
Create Table: CREATE TABLE `actor` (
`actor_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`first_name` varchar(45) NOT NULL,
`last_name` varchar(45) NOT NULL,
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`actor_id`),
KEY `idx_actor_last_name` (`last_name`)
) ENGINE=InnoDB AUTO_INCREMENT=207 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql> set @a:=0;
Query OK, 0 rows affected (0.00 sec)
mysql> select @a:=concat(@a,",",actor_id) as actor_id from actor where actor_id>195 order by (actor_id) desc limit 1;
+----------------------------+
| actor_id |
+----------------------------+
| 0,196,197,198,199,200,205, |
+----------------------------+
1 row in set (0.00 sec)
En su caso de cambiar la "condición WHERE"
o también puede hacer después del selecto:
mysql> select @a;
+-------------------------------+
| @a |
+-------------------------------+
| 0,196,197,198,199,200,205,206 |
+-------------------------------+
1 row in set (0.00 sec)
Estoy muy en contra de 'GROUP_CONCAT' - para mí se siente como un mal uso de un motor de base de datos. – jnylen
@jnylen - No estoy seguro de por qué, tampoco hay notas de advertencia por parte de los amigos de MySQL, la pregunta fue etiquetada MySQL, no PHP. -Para cada uno su propio amigo, simplemente diciendo :) – GDP
@GregP Supongo que es porque las operaciones de la base de datos deberían manipular y devolver tablas de datos, no deberían tratar con tipos de datos "falsos" como una cadena separada por comas, por lo que es una mala "código olor" para mí. Cada vez que tenga una lista delimitada por comas, probablemente debería dejarla en filas o en una matriz. Aquí hay un buen ejemplo de los problemas que puede enfrentar: http: // stackoverflow.com/questions/6643656/mysql-comma-delimited-list-possible-to-add-and-remove-values? rq = 1 – jnylen