Warning: count(): Parameter must be an array or an object that implements Countable in /home/pasokime/domains/mysql.lt/public_html/forumas/include/parser.php on line 820

Topic: Atsitiktinė eilutė iš DB

Atsiktinės eilutės traukimas iš DB:

SELECT
    `article_cat`.`title` AS `ctitle`,
    `articles`.`author`,
    `articles`.`title`,
    `articles`.`alias`,
    `articles`.`description`,
    `articles`.`cat_alias`
FROM
    `article_cat`
Inner Join `articles` ON `article_cat`.`alias` = `articles`.`cat_alias`
JOIN (SELECT (CEIL(RAND() * (SELECT MAX(id) FROM articles))) AS id) AS r2
WHERE
    `articles`.`visible` =  'Y' AND
    `articles`.`id` = `r2`.`id`
LIMIT 0, 1

Gal įmanomas koks kitas būdas? Trumpesnis ir aiškesnis nes čia kad ir sukūriau surinkdamas viską iš dalių vistiek nelabai susigaudau kaip veikia :)

Re: Atsitiktinė eilutė iš DB

Tik netikrinau sintaksės ir smulkių klaidų ;)

SELECT `article_cat`.`title` AS `ctitle`,
    `articles`.`author`,
    `articles`.`title`,
    `articles`.`alias`,
    `articles`.`description`,
    `articles`.`cat_alias`
FROM `article_cat`
   INNER JOIN `articles` ON `article_cat`.`alias` = `articles`.`cat_alias`
WHERE `articles`.`visible` =  'Y'
ORDER BY RAND()
LIMIT 1