MySQL最近的匹配使用ABS混淆

时间:2012-07-02 18:37:24

标签: php mysql tabs sql-order-by match

非常简单,只是难以理解语法而在任何地方找不到好的例子。

我想在数据库中搜索最接近的匹配项。在页面的前面我定义了$ 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结果资源。

2 个答案:

答案 0 :(得分:1)

您的MySQL安装中是否存在TOP函数?

试试这个语法:

SELECT id
FROM test
WHERE uploader != '$username'
ORDER BY ABS(uploaderrating - $rating)
LIMIT 0,1

可以找到演示here

答案 1 :(得分:0)

如果您使用的是mysql,则必须使用

SELECT id
...
limit 1