我有一个关于MySQL查询的问题。我会(显然)喜欢尽可能少地使用这个查询,并希望只有一个。我想要做的是更新数据库中的一列,如果信息不同。MySQL更新字段不同
例如,假设我有“referer”列和“date”列。如果用户点击链接并且引用者不同但日期相同,我只想更新引用者列。
这是我当前的查询:
mysql_query ("
UPDATE clicks
SET
clicks = clicks + 1
, referers = CONCAT(referers, ',$referer')
, dates = CONCAT(dates, ',$date')
WHERE shortURL = '$url'
AND referer != $referer
");
有什么办法上班到一个查询呢?
除了查询之外,日期不可能相同,时间正在运行! – 2012-04-14 19:48:50
为什么你在'referers'和'dates'列中存储多个值?这是效率低下的,因为这些列对于具有大量点击次数的页面将保持巨大的字符串。这也使得找出特定日期的顶级推荐人或最多点击的页面更加困难。 – 2012-04-14 19:50:47
因此,为每次点击创建一个新行会更有效率? – Lukas 2012-04-14 20:00:51