我正在重写哈希码。有一点
OverflowException
导致Hash = addUnsafe(multiplyUnsafe(1210600964, 31), -837896230)
。有没有我可以使用的方法,如:
dllimports
无需将我的项目链接到另一个程序集?我不想删除溢出检查。 $sql1 = "SELECT *
FROM (
SELECT wp_posts.ID, wp_posts.post_title, wp_posts.post_type, wp_posts.post_status, wp_postmeta.meta_value
FROM wp_posts, wp_postmeta
WHERE wp_posts.ID=wp_postmeta.post_ID
AND post_type='banners'
AND post_status='publish'
AND meta_key='uselink'
AND meta_value='http://www.mylink.com/subpage/')
AS a
INNER JOIN (
SELECT meta_value, MIN( post_id )
AS min_id
FROM wp_postmeta
GROUP BY meta_value
HAVING COUNT( * ) > 1 )
AS b
ON b.meta_value = a.meta_value
AND b.min_id <> a.id";
$result1 = $conn->query($sql1);
if ($result1->num_rows > 0) {
while($row = $result1->fetch_assoc()) {
echo $row["meta_value"] . ", ";
}
} else {
echo "0 results";
}
没问题。
答案 0 :(得分:2)
您可以使用64位数字进行数学运算,然后使用{{1}}来减少多余数据:
{{1}}
尽管可以在一个解决方案中混合使用C#和VB.NET项目,但是在C#中编写一个类来执行未经检查的算术可能是最容易的,即使您并不热衷于添加对另一个程序集的引用。 / p>
在C#中编写函数也是一个好主意,这样你就可以测试VB函数是否返回了预期的值。这就是我检查上面代码所做的。
编辑:Joseph Nields的评论提示我测试性能,结果是使用CLng而不是Convert.ToInt64而且工作得更快。