Mysql Select语句获取错误
我有一个SELECT语句,它应该得到前3个匹配项的列表,但由于某种原因它得到了一个错误。当我说前三名的时候,我不是指三排。我指的是有前3个匹配项的行。比如说:Mysql Select语句获取错误,mysql,sql,database,Mysql,Sql,Database,我有一个SELECT语句,它应该得到前3个匹配项的列表,但由于某种原因它得到了一个错误。当我说前三名的时候,我不是指三排。我指的是有前3个匹配项的行。比如说: 10 10 9 8 8 8 将是前3名的比赛,因为10、9和8是最高的。请看一下我的代码: SELECT input, (input LIKE '% Hello %') as 'matches' FROM allData HAVING matches > '0' AND char_length(input) <= '
10
10
9
8
8
8
将是前3名的比赛,因为10、9和8是最高的。请看一下我的代码:
SELECT input,
(input LIKE '% Hello %') as 'matches'
FROM allData
HAVING matches > '0'
AND char_length(input) <= '50'
AND `matches` in
(select distinct `matches`
from allData
order by `matches` desc
limit 3);
不能在子查询中设置限制。如果要实现这一点,请将此查询拆分为两个查询。首先进行子查询,并将子查询的结果放入主查询。您的错误是什么?这似乎只是一个SQL/mysql问题;没有PHP/mysqli问题。MySQL不允许子查询中的限制。你不能用那种方式做你想做的事情。@GordonLinoff有什么解决方案吗?@chris85戈登说了什么。如果你能提供样本数据和期望的结果就好了。