gpt4 book ai didi

mysql - 是否可以使用带乘法的 OFFSET 对查询进行分页?

转载 作者:行者123 更新时间:2023-11-29 05:02:03 25 4
gpt4 key购买 nike

MYSQL分页查询是否可以将两个数相乘?

SELECT * FROM Posts
LIMIT $itemsPerPage
OFFSET ($pageNumber * $itemsPerPage)

当我尝试在 SQL 中将这两个数字动态相乘时,我在乘法部分遇到语法错误。不能在查询中乘以数字吗?

我的完整查询

SELECT com_id, time_stamp, comBy, post_id, comContent, IFNULL(likes, 0) - IFNULL(dislikes, 0) AS likeResult, profile_pic FROM Comments C
# Adding Likes
LEFT JOIN (SELECT likedCom_id, COUNT(*) AS likes FROM Comment_Likes
GROUP BY likedCom_id) Cl ON C.com_id=Cl.likedCom_id
LEFT JOIN (SELECT dislikedCom_id, IFNULL(COUNT(*),0) AS dislikes FROM Comment_Dislikes
GROUP BY dislikedCom_id) Cd ON C.com_id=Cd.dislikedCom_id
LEFT JOIN (SELECT user_id, profile_pic FROM Users) U
ON U.user_id = C.comBy
WHERE post_id = '10'
ORDER BY time_stamp DESC
LIMIT 5
OFFSET (0 * 5)

例如上面的OFFSET (0 * 1)代码分别表示pageNumber和itemsPerPage变量。

我在 HeidiSQL 上遇到关于我的查询的错误:

最佳答案

OFFSET 参数是标量值,提供数字文字或单个绑定(bind)值。

如果我们需要进行乘法运算,我们可以在客户端中进行,并将结果作为单个参数提供给 OFFSET

看起来代码正在动态生成 SQL 语句。我们可以这样做:

$sql =  "SELECT ... OFFSET " . (int)($pageNumber * $itemsPerPage) ;

$offset = $pageNumber * $itemsPerPage ;
$sql = "SELECT ... OFFSET " . (int)$offset ;

关于mysql - 是否可以使用带乘法的 OFFSET 对查询进行分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56531772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com