非常简单,只是难以理解语法而在任何地方找不到好的例子。
我想在数据库中搜索最接近的匹配项。在页面的前面我定义了$ 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结果资源。
答案 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