Alternative to using LIMIT keyword in a SubQuery in MYSQL
You can also use same query, just by adding one extra layer of select before subquery. and that's it. It will work.
select * from test
where code_ver IN (select * from (select DISTINCT code_ver
from test
where code_ver NOT LIKE '%DevBld%'
ORDER by date DESC LIMIT 10) as t1);
Put the subquery in a derived table:
SELECT test.*
FROM test
LEFT JOIN (SELECT DISTINCT code_ver
FROM mastertest
WHERE code_ver NOT LIKE '%DevBld%'
ORDER BY `date` DESC
LIMIT 10) d
USING (code_ver)
WHERE d.code_ver IS NOT NULL;
(You could also RIGHT JOIN that, of course, and drop the outer WHERE condition.)
Answer suggested by Layke is wrong in my purview. Intention of using limit in subquery is so main query run on limited records fetched from subquery. And if we keep limit outside then it makes limit useless for subquery.
Since mysql doesn't support yet limit in subquery, instead you can use JOIN as follows:
SELECT * FROM test
JOIN
(
SELECT DISTINCT code_ver
FROM test
WHERE code_ver NOT LIKE '%DevBld%'
ORDER BY date DESC LIMIT 10
) d
ON test.code_ver
IN (d.code_ver)
ORDER BY xyz;