Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对于SQL\u CALC\u FOUND\u行,是否可以使用1而不是星号?_Mysql_Sql - Fatal编程技术网

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();
出现错误的原因是,您正在将表与自身连接起来,所以很明显,每个列都会出现两次。这就是为什么这个名字模棱两可。我添加了quelifier
t1

试试看:

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();
出现错误的原因是,您正在将表与自身连接起来,所以很明显,每个列都会出现两次。这就是为什么这个名字模棱两可。我添加了quelifier
t1

试试这个

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()
,我想这与前面提到的问题无关。