我使用了一種叫做@a變量,存儲的ID,在最後您有值的變量或嘗試用 的限制,爲了組,像這樣:
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)
在你情況改變「WHERE條件」
,或者您也可以在以後選擇:
mysql> select @a;
+-------------------------------+
| @a |
+-------------------------------+
| 0,196,197,198,199,200,205,206 |
+-------------------------------+
1 row in set (0.00 sec)
我很強烈地反對'GROUP_CONCAT' - 這感覺就像是對我濫用數據庫引擎。 – jnylen
@jnylen - 不知道爲什麼,MySQL的人沒有注意到這個問題,這個問題被標記爲MySQL,而不是PHP。對每個他自己的朋友,只是說:) – GDP
@GregP我想這是因爲數據庫操作應該操縱並返回數據表 - 他們不應該處理「假」數據類型,如逗號分隔的字符串,所以這是一個糟糕的「代碼味道」給我。任何時候你有一個逗號分隔列表,你應該把它留在行或數組中。下面是您可以面對的問題的一個很好的例子:http:// stackoverflow。com/questions/6643656/mysql-comma-delimited-list-possible-to-add-and-remove-values?rq = 1 – jnylen