有一个in参数作为页面。我想要做的就是从中驱逐1并乘以10.但每次都会给我一个错误。
IF !a THEN
SELECT *
from entry
WHERE topic_foreign_id = (
select topic_id
from topic
where topic_name = topicName
)
ORDER BY entry_time ASC
LIMIT 10 OFFSET page;
ELSE
SELECT *
from entry
WHERE topic_foreign_id = (
select topic_id
from topic
where topic_name = topicName
)
ORDER BY entry_time ASC;
END IF
这行代码效果很好但是当我想在第一个SQL查询中进行aritmetic操作时,myAdmin每次都会抛出一个错误。
SELECT *
from entry
WHERE topic_foreign_id = (
select topic_id
from topic
where topic_name = topicName
)
ORDER BY entry_time ASC
LIMIT 10 OFFSET 10 * ( page - 1); //throws error
答案 0 :(得分:0)
--- EDITED ---
LIMIT
似乎不喜欢计算。尝试使用变量并在存储过程中使用该值
DECLARE v_page_offset INT DEFAULT 0;
SET v_page_offset = 10*(page-1);
之后
LIMIT 10 OFFSET v_page_offset;