2010-10-11 57 views
3

我在尋找內置返回剛纔選擇的行數,如ROW_COUNT()確實爲INSERT,UPDATE,等mysql:什麼是SELECT的ROW_COUNT()信息函數?

在一個存儲過程我希望做這個MySQL信息功能:

... 
select episode_name from bestLOSTepisodes 
set _episodes_found = SELECTED_ROWS(); 
... 

我已經做了大量的挖掘工作,並且一直無法找到像SELECTED_ROWS()這樣的函數。

回答

2

您可能想要使用FOUND_ROWS()函數。

例子:

CREATE TABLE users (id int, name varchar(20), age int); 

INSERT INTO users VALUES (1, 'Bob', 19); 
INSERT INTO users VALUES (2, 'Jack', 25); 
INSERT INTO users VALUES (3, 'Paul', 15); 
INSERT INTO users VALUES (4, 'Steve', 35); 
INSERT INTO users VALUES (5, 'Mark', 17); 

SELECT * FROM users WHERE age > 18; 
+------+-------+------+ 
| id | name | age | 
+------+-------+------+ 
| 1 | Bob | 19 | 
| 2 | Jack | 25 | 
| 4 | Steve | 35 | 
+------+-------+------+ 
3 rows in set (0.00 sec) 

SELECT FOUND_ROWS() as num_of_rows_found; 
+-------------------+ 
| num_of_rows_found | 
+-------------------+ 
|     3 | 
+-------------------+ 
1 row in set (0.00 sec) 
+0

謝謝!我剛發現這個作品甚至沒有限制。 – 2010-10-11 13:37:04

+0

@Pete Alvin:是的,你可以使用'SQL_CALC_FOUND_ROWS'來返回服務器在沒有'LIMIT'的情況下返回的行數。如果最近一次成功的SELECT語句中沒有'SQL_CALC_FOUND_ROWS'選項,'FOUND_ROWS()'返回該語句返回的結果集中的行數。 – 2010-10-11 13:41:58

-1

您可以嘗試FOUND_ROWS()函數。

CREATE TABLE Emp(EmpID int,EMPNAME varchar(20),SALARY int); 
INSERT INTO Emp VALUES (1,'Astin',6500); 
INSERT INTO Emp VALUES (2,'Blade',4500); 
INSERT INTO Emp VALUES (3,'Cabal',6500); 
INSERT INTO Emp VALUES (4,'Brant',5200); 
INSERT INTO Emp VALUES (5,'Sunny',7000); 
SELECT * FROM EMP WHERE SALARY=6500; 
SELECT FOUND_ROWS() as SelectedRowCount; 
相關問題