非常简单,只是在语法上难倒了,没有在任何地方找到一个好的例子。
我想在数据库中搜索最接近的匹配项。在页面的前面我定义了 $rating,这是我想要匹配的值。 Uploaderating 是我要在表中匹配的值。
我正在使用以下内容:
$SQL = "SELECT TOP(1) id
FROM table
WHERE uploader != '$username'
ORDER BY ABS(uploaderrating - $rating)";
$result = mysql_query($query);
$row1= mysql_fetch_array($result);
$id1 = $row1[id];
我没有得到我想要的行 ID,而是得到了以下内容:
mysql_fetch_array():提供的参数不是 mysite 中行号处的有效 MySQL 结果资源。
最佳答案
你安装my MySQL的时候有TOP函数吗?
试试这个语法:
SELECT id
FROM test
WHERE uploader != '$username'
ORDER BY ABS(uploaderrating - $rating)
LIMIT 0,1
可以找到Demo here .
关于php - MySQL Closest Match 使用 ABS 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11299280/