2017-10-28 94 views
0

我有一个带有日期戳的事务表。我想添加一列来为记录编号,但他们必须每天重新开始。这可能吗?每天向表添加递增数

例子:

+------------------+--------------+ 
| Date    | Data   | 
+------------------+--------------+ 
| 19-10-2017 10:18 | Transaction1 | 
| 19-10-2017 12:18 | Transaction2 | 
| 19-10-2017 13:23 | Transaction3 | 
| 20-10-2017 11:18 | Transaction4 | 
| 20-10-2017 14:18 | Transaction5 | 
| 21-10-2017 09:18 | Transaction6 | 
| 21-10-2017 10:18 | Transaction7 | 
| 21-10-2017 11:18 | Transaction8 | 
| 21-10-2017 12:18 | Transaction9 | 
+------------------+---------+----+ 

而且我想这样:

+------+------------------+--------------+ 
| Nr | Date    | Data   | 
+------+------------------+--------------+ 
| 1 | 19-10-2017 10:18 | Transaction1 | 
| 2 | 19-10-2017 12:18 | Transaction2 | 
| 3 | 19-10-2017 13:23 | Transaction3 | 
| 1 | 20-10-2017 11:18 | Transaction4 | 
| 2 | 20-10-2017 14:18 | Transaction5 | 
| 1 | 21-10-2017 09:18 | Transaction6 | 
| 2 | 21-10-2017 10:18 | Transaction7 | 
| 3 | 21-10-2017 11:18 | Transaction8 | 
| 4 | 21-10-2017 12:18 | Transaction9 | 
+------+------------------+--------------+ 
+0

你想更新表添加新的列或只想在此打印方式? –

回答

0

你可以尝试以下解决方案:

SELECT 
    @row_number:=CASE WHEN DATE(@date_value)=DATE(`Date`) THEN @row_number + 1 ELSE 1 END AS row_number, 
    @date_value:=`Date` AS `Date` 
FROM test, (SELECT @row_number:=0, @date_value:=DATE(NULL)) AS t 
ORDER BY `Date`, row_number 
+0

我会将DATE()存储为变量 – Strawberry