任何想法如何识别我的数据库中是否添加了新客户端。
我正在考虑通过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
答案 0 :(得分:3)
向表中添加一个字段new
,默认为1,在页面加载时使用该字段用于select并将其设置为0以表示它不再是新的。
答案 1 :(得分: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()
过去任何其他参考日期,并获得该日期的结果。
让我们假设您有以下样本数据
+------+-------------+------------+ | id | client_name | date_added | +------+-------------+------------+ | 1 | ABC | 2013-05-13 | | 2 | XYZ | 2013-06-13 | | 3 | EFG | 2013-06-13 | | 4 | HIJ | 2013-08-11 | +------+-------------+------------+
今天是2013-08-13
,然后查询的输出将是
+------+-------------+-----------+-------------+ | id | client_name | new_count | total_count | +------+-------------+-----------+-------------+ | 4 | HIJ | 1 | 4 | +------+-------------+-----------+-------------+
答案 2 :(得分:0)
您可以在网页或PHP脚本中记住之前看到的最高ID值。或者之前看过的最高时间戳(比日期更好)。
我更喜欢ID和版本号用于与并发相关的东西(锁定,找到最新等) - 因为它们应该被定义为升序,不会遭受“相同的毫秒”冲突,并且效率更高。
我假设您要在表单中的隐藏字段中保存应用程序的“状态”(关于用户看到了什么),或者某些情况。然后,这将跟踪“上次看到”并允许您识别自上次网页浏览以来的“新添加”。
如果您希望识别来自其他页面或登录应用程序时新添加的内容,则需要将“状态”存储在数据库中。
答案 3 :(得分:0)
这取决于你认为新的东西。您必须定义您要将记录与参考日期进行比较的内容。定义后,您可以使用如下查询:
SELECT * FROM client WHERE date_added> ='$ date'
其中$ date是参考日期。