これは実際には重複した質問ですが、今ではより優れたシングルパスの高速な回答があります:
SELECT *
FROM
(
SELECT tbl.*, @counter := @counter +1 counter
FROM (select @counter:=0) initvar, tbl
ORDER BY ordcolumn
) X
WHERE counter <= (50/100 * @counter)
ORDER BY ordcolumn;
これは実際には重複した質問ですが、今ではより優れたシングルパスの高速な回答があります:
SELECT *
FROM
(
SELECT tbl.*, @counter := @counter +1 counter
FROM (select @counter:=0) initvar, tbl
ORDER BY ordcolumn
) X
WHERE counter <= (50/100 * @counter)
ORDER BY ordcolumn;