我在php中有以下数据:
每个博客 ID & Timestamps
然后我有一张包含以下内容的表:
| id | blog | timestamp |
我需要找出我的哪个php时间戳数据不等于mysql数据库中的timestamp
。
当然,我可以为php中的每个时间戳运行一百个查询,以查看它是否已更改,但这似乎效率低下。
有没有办法在Mysql中放一个查询来获取数据?
为了澄清,我的php ID & timestamps
位于像
Array ( [3] => Array ( [timestamp] => 1389414084 ) )
如果ID = 3的记录的时间戳为1389414084,我需要检查mysql。
问题是,要检查大量数据,最终会产生大量查询。我只需要那些不匹配的那些。
我不知道如何解决这个问题,所以任何帮助都会非常感激。
澄清 - 第一个数据是json。这就是它必须如何。我解码它然后必须匹配博客时间戳。
答案 0 :(得分:0)
我建议的是制作ID,Blog&时间戳并将其存储在表本身中。而不是检查id&时间戳,您可以检查哈希匹配(从我的BlogTimeStamp中选择*,其中哈希不是IN('hash1','hash2',....)。
我不知道你的具体要求。也许会有一个更好的解决方案
答案 1 :(得分:0)
SELECT *
FROM myBlogTable
WHERE timestamp NOT IN (1389414084);
如果您使用select语句来获取1389414084
,那么将其插入括号中而不是在时间戳中插入硬编码,以便在您需要时查询是动态的。
答案 2 :(得分:0)
这就是我最后所做的。我只是打破了查询并构造它,以便我在一个查询中拥有所有内容。
SELECT * FROM title WHERE id IN((SELECT id FROM title WHERE id = '75' AND date ='1392501995'),(SELECT id FROM title WHERE id = '74' AND date ='1392401481'))
所以你只需在php中创建它。
$i = count($fav);
$sql = 'SELECT * FROM title WHERE id IN(';
foreach($fav as $key => $val){
$sql .= "(SELECT id FROM title WHERE id = '".$key."' AND date ='".$val["date"]."')";
if($i > 1) {
$sql .= ",";
}
$i = $i-1;
}
$sql .= ")";