我在尋找內置返回剛纔選擇的行數,如ROW_COUNT()確實爲INSERT,UPDATE,等mysql:什麼是SELECT的ROW_COUNT()信息函數?
在一個存儲過程我希望做這個MySQL信息功能:
...
select episode_name from bestLOSTepisodes
set _episodes_found = SELECTED_ROWS();
...
我已經做了大量的挖掘工作,並且一直無法找到像SELECTED_ROWS()這樣的函數。
我在尋找內置返回剛纔選擇的行數,如ROW_COUNT()確實爲INSERT,UPDATE,等mysql:什麼是SELECT的ROW_COUNT()信息函數?
在一個存儲過程我希望做這個MySQL信息功能:
...
select episode_name from bestLOSTepisodes
set _episodes_found = SELECTED_ROWS();
...
我已經做了大量的挖掘工作,並且一直無法找到像SELECTED_ROWS()這樣的函數。
您可能想要使用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)
你必須在你的查詢SQL_CALC_FOUND_ROWS FOUND_ROWS:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
您可以嘗試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;
謝謝!我剛發現這個作品甚至沒有限制。 – 2010-10-11 13:37:04
@Pete Alvin:是的,你可以使用'SQL_CALC_FOUND_ROWS'來返回服務器在沒有'LIMIT'的情況下返回的行數。如果最近一次成功的SELECT語句中沒有'SQL_CALC_FOUND_ROWS'選項,'FOUND_ROWS()'返回該語句返回的結果集中的行數。 – 2010-10-11 13:41:58