0

任何想法如何确定我的数据库中是否添加了新客户端。

我正在考虑通过 date_added 字段来识别它。

id    client_name     date_added
---------------------------------
1     ABC             2013-01-02
2     XYZ             2013-01-03 
3     EFG             2013-01-02
4     HIJ             2013-01-05

如您所见,一个新客户在 2013-01-05 添加了 HIJ。

我正在寻找这种结果:

Client List
Total NO: 4
New Client
Total No: 1
Client Name: HIJ
4

4 回答 4

3

向表中添加一个字段new,默认为 1,在页面加载时使用该字段进行选择并将其设置为 0 以表明它不再是新的。

于 2013-08-13T02:50:54.030 回答
1

很难说,但根据您的评论...我的参考日期是 1 个月的间隔...您可能正在寻找类似的东西

SELECT id, client_name, new_count, total_count
  FROM
(
  SELECT id, client_name
    FROM clients
   WHERE date_added BETWEEN CURDATE() - INTERVAL 1 MONTH AND CURDATE()
) c CROSS JOIN
(
  SELECT 
  (
    SELECT COUNT(*) new_count
        FROM clients
         WHERE date_added BETWEEN CURDATE() - INTERVAL 1 MONTH AND CURDATE()
  ) new_count,
  (
    SELECT COUNT(*) total_count
        FROM clients
  ) total_count
) t 

显然,您可以在此查询中轻松更改CURDATE()过去的任何其他参考日期,并获得该日期的结果。

假设您有以下示例数据

+--------+-------------+------------+
| 编号 | 客户名称 | 添加日期 |
+--------+-------------+------------+
| 1 | 美国广播公司 | 2013-05-13 |
| 2 | XYZ | 2013-06-13 |
| 3 | EFG | 2013-06-13 |
| 4 | HIJ | 2013-08-11 |
+--------+-------------+------------+

今天是2013-08-13查询的输出将是

+--------+-------------+------------+-------------+
| 编号 | 客户名称 | 新计数 | 总数 |
+--------+-------------+------------+-------------+
| 4 | HIJ | 1 | 4 |
+--------+-------------+------------+-------------+
于 2013-08-13T04:31:34.867 回答
0

您可以记住,在您的网页或 PHP 脚本中,之前看到的最高 ID 值。或之前看到的最高时间戳(优于日期)。

我更喜欢并发相关内容的 ID 或版本号(锁定、查找最新等)——因为它们应该被定义为升序,不能遭受“相同毫秒”的冲突,并且效率更高。

我假设您将在表单或类似的隐藏字段中保存应用程序的“状态”(关于用户看到的内容)。然后,这将跟踪“最后一次看到”并允许您识别自上次综合浏览后“新添加的”。

如果您希望在来自不同页面或登录应用程序时识别新添加的内容,则需要将“状态”存储在数据库中。

于 2013-08-13T02:46:51.090 回答
0

这取决于你认为什么是新的。您必须定义要将记录与(参考日期)进行比较的内容。定义后,您可以使用如下查询:

SELECT * FROM client WHERE date_added >= '$date'

其中 $date 是参考日期。

于 2013-08-13T02:57:19.550 回答