【发布时间】:2013-10-18 02:29:29
【问题描述】:
我知道这个查询可能有缺陷,但你能告诉我如何让它变得更好吗?它给了我错误。我是初学者,请不要无礼。
查询是:
SET @start = 0;
IF @start <= 45
(SELECT
groups.id AS groupid,
count(papers.classes) AS cl,
start + cl AS st
FROM groups,
gpaper,
papers
WHERE cid = '1'
AND sid = '4'
AND groups.id = '14'
AND gpaper.gid = groups.id
AND gpaper.pid = papers.paperid
ORDER BY groupname) AS t
我想要查询的结果,直到 st 等于 cl。
得到的错误是这样的:
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获得在 'IF @start
【问题讨论】:
-
错误是什么?知道我们必须解决什么问题或解释什么会更容易。
-
I want result from the query until st is equal to cl. I know cl is not defined。您如何将未定义的事物与另一个事物等同起来?我认为如果您能展示一些示例数据和预期结果会更好。 -
它将是一个 php 变量。对不起,让我更正一下。
-
没有看到正确的 DDL 和期望的结果,很难提供帮助。
-
如果您在开始时删除
(和) As t,它可能会起作用。但从逻辑上讲,您应该使用 tableJoin而不是 From table1, table2 这是老式的语法,性能受到影响。
标签: mysql sql select if-statement