Mysql 对于SQL\u CALC\u FOUND\u行,是否可以使用1而不是星号?
我的问题是:Mysql 对于SQL\u CALC\u FOUND\u行,是否可以使用1而不是星号?,mysql,sql,Mysql,Sql,我的问题是: SELECT t1.mycol FROM mytable t1 JOIN mytable t2 ON t1.id = t2.postid ORDER BY value LIMIT 10; 效果很好。 现在我需要不受限制地计算匹配行的数量。因此,我将这个SQL\u CALC\u FOUND\u ROWS*添加到select语句中,我的查询抛出: orderby子句中的值不明确 为什么??我怎样才能修好它 注意,当我在select语句中使用SQL\u CALC\u FOUND\u
SELECT t1.mycol
FROM mytable t1
JOIN mytable t2
ON t1.id = t2.postid
ORDER BY value
LIMIT 10;
效果很好。
现在我需要不受限制地计算匹配行的数量。因此,我将这个SQL\u CALC\u FOUND\u ROWS*
添加到select
语句中,我的查询抛出:
orderby
子句中的值不明确
为什么??我怎样才能修好它
注意,当我在select
语句中使用SQL\u CALC\u FOUND\u ROWS 1
而不是SQL\u CALC\u FOUND\u ROWS*
时,似乎一切正常。那么,可以使用SQL\u CALC\u FOUND\u ROWS 1
?(我问这个问题是因为文档中有SQL\u CALC\u行*
。试试看:
SELECT SQL_CALC_FOUND_ROWS * from mytable t1
JOIN mytable t2
ON t1.id = t2.postid
ORDER BY t1.value
LIMIT 10;
SELECT FOUND_ROWS();
出现错误的原因是,您正在将表与自身连接起来,所以很明显,每个列都会出现两次。这就是为什么这个名字模棱两可。我添加了quelifiert1
试试看:
SELECT SQL_CALC_FOUND_ROWS * from mytable t1
JOIN mytable t2
ON t1.id = t2.postid
ORDER BY t1.value
LIMIT 10;
SELECT FOUND_ROWS();
出现错误的原因是,您正在将表与自身连接起来,所以很明显,每个列都会出现两次。这就是为什么这个名字模棱两可。我添加了quelifiert1
试试这个
SELECT SQL_CALC_FOUND_ROWS t1.* from mytable t1
JOIN mytable t2
ON t1.id = t2.postid
ORDER BY t1.value
LIMIT 10;
SELECT FOUND_ROWS();
试试这个
SELECT SQL_CALC_FOUND_ROWS t1.* from mytable t1
JOIN mytable t2
ON t1.id = t2.postid
ORDER BY t1.value
LIMIT 10;
SELECT FOUND_ROWS();
我不知道为什么要使用自联接,但您说查询符合您的要求
您的问题只是在
orderby
中缺少限定的列名。它与SQL\u CALC\u FOUND\u ROWS
无关:
SELECT SQL_CALC_FOUND_ROWS t1.mycol
FROM mytable t1 JOIN
mytable t2
ON t1.id = t2.postid
ORDER BY t1.value
LIMIT 10;
我不知道你最初的询问为什么会奏效。它在ORDER BY中具有相同的模棱两可的列名,我不知道为什么要使用自联接,但您说查询符合您的要求 您的问题只是在orderby中缺少限定的列名。它与
SQL\u CALC\u FOUND\u ROWS
无关:
SELECT SQL_CALC_FOUND_ROWS t1.mycol
FROM mytable t1 JOIN
mytable t2
ON t1.id = t2.postid
ORDER BY t1.value
LIMIT 10;
我不知道你最初的询问为什么会奏效。它在
ORDER BY
中有相同的模棱两可的列名。当SQL\u CALC\u FOUND\u ROWS
是唯一的区别时,查询是否真的像预期的那样工作?感觉只有两列名为value
@lvaroGonzález是的,当我删除SQL\u CALC\u FOUND\u ROWS*
时,我的查询运行良好。注意,您在我的问题中看到的查询是我真实查询的简化。当SQL\u CALC\u FOUND\u ROWS
是唯一的区别时,查询是否真的像预期的那样工作?感觉只有两列名为value
@lvaroGonzález是的,当我删除SQL\u CALC\u FOUND\u ROWS*
时,我的查询运行良好。注意,您在我的问题中看到的查询是我真实查询的简化。仍然value
是不明确的
。注意,目前我在一个单独的查询中选择了FOUND_ROWS()
,我想这与提到的问题无关。仍然value
不明确。注意,目前我在一个单独的查询中选择了FOUND_ROWS()
,我想这与前面提到的问题无关。