【问题标题】:Can I use MySQL functions in the LIMIT offset我可以在 LIMIT 偏移中使用 MySQL 函数吗
【发布时间】:2015-10-16 10:17:42
【问题描述】:

我可以在LIMIT 偏移量中使用 MySQL 函数吗? 喜欢:

SELECT * FROM sites WHERE ... LIMIT FLOOR(1 + RAND() * (SELECT COUNT(*) FROM sites)) , 1

【问题讨论】:

    标签: mysql limit offset mariadb


    【解决方案1】:

    不,您不能直接这样做。 LIMITOFFSET 值必须是常量。

    来自the MySQL docs的引用:

    LIMIT 子句可用于限制 SELECT 语句返回的行数。 LIMIT 接受一个或两个数字参数,它们都必须是非负整数常量(使用准备好的语句时除外)。

    不过,您可以使用准备好的语句和变量:

    SELECT @offset:=FLOOR(1 + RAND() * COUNT(*)) FROM sites;
    PREPARE STMT FROM 'SELECT * FROM sites WHERE ... LIMIT ?, 1';
    EXECUTE STMT USING @offset; 
    

    【讨论】:

      猜你喜欢
      • 2019-09-13
      • 1970-01-01
      • 2011-07-26
      • 2023-03-26
      • 2012-03-29
      • 2014-09-02
      • 2021-04-01
      • 2016-06-09
      • 1970-01-01
      相关资源
      最近更新 更多