MAX(rowid) giving n+1 rows as answerMyISAM versus InnoDBCan I concatenate multiple MySQL rows into one field?How do I check in SQLite whether a table exists?Improve INSERT-per-second performance of SQLite?Select first row in each GROUP BY group?Get Offset of ROWID in SQLite3SQL select only rows with max value on a columnWhat is the MySQL VARCHAR max size?SQLite Find ROWID of most recent or next ROWIDsqlite rowid after deleting rows
Word ending in "-ine" for rat-like
What is my external HDD doing?
English idiomatic equivalents of 能骗就骗 (if you can cheat, then cheat)
Checkmate in 1 on a Tangled Board
A quine of sorts
Where to connect the fuse and why?
Two palindromes are not enough
Five 5-cent coins touching each other
What's the lunar calendar of two moons
What could a Medieval society do with excess animal blood?
Rear derailleur got caught in the spokes, what could be a root cause
Understanding the as-if rule, "the program was executed as written"
Is it theoretically possible to hack printer using scanner tray?
Active wildlife outside the window- Good or Bad for Cat psychology?
Is leaving out prefixes like "rauf", "rüber", "rein" when describing movement considered a big mistake in spoken German?
Why didn't Avengers simply jump 5 years back?
How to track mail undetectably?
Why are examinees often not allowed to leave during the start and end of an exam?
Why do movie directors use brown tint on Mexico cities?
A* pathfinding algorithm too slow
Why didn't Caesar move against Sextus Pompey immediately after Munda?
iMac 2019: Can I mix the old modules with the new ones when upgrading RAM?
Is it OK to say "The situation is pregnant with a crisis"?
What prevents a US state from colonizing a smaller state?
MAX(rowid) giving n+1 rows as answer
MyISAM versus InnoDBCan I concatenate multiple MySQL rows into one field?How do I check in SQLite whether a table exists?Improve INSERT-per-second performance of SQLite?Select first row in each GROUP BY group?Get Offset of ROWID in SQLite3SQL select only rows with max value on a columnWhat is the MySQL VARCHAR max size?SQLite Find ROWID of most recent or next ROWIDsqlite rowid after deleting rows
"SELECT max(rowid) from studdetail"
this should give maximum row in the table. And it is giving at one place but at another it is giving n+1(n is the no. of rows).
What can be the reasons?
I read something like hidden row is it that if yes then pls explain.
Thanks
mysql sqlite rowid
add a comment |
"SELECT max(rowid) from studdetail"
this should give maximum row in the table. And it is giving at one place but at another it is giving n+1(n is the no. of rows).
What can be the reasons?
I read something like hidden row is it that if yes then pls explain.
Thanks
mysql sqlite rowid
1
What does this mean?And it is giving at one place but at another
– WEI_DBA
Mar 25 at 16:31
Which database? You have this tagged for multiple ones? I assume sqlite thanks to the use of the rowid column?
– Shawn
Mar 25 at 16:33
""SELECT max(rowid) from studdetail" this should give maximum row in the table" It also assumes you never delete the "last"(max(rowid))
record from the table.. Also you are talking about SQLite because you are talking about rowid?
– Raymond Nijland
Mar 25 at 16:45
Oh, wait. Are you expecting the max rowid to equal the number of rows in the table? That's not how things work.
– Shawn
Mar 25 at 18:18
add a comment |
"SELECT max(rowid) from studdetail"
this should give maximum row in the table. And it is giving at one place but at another it is giving n+1(n is the no. of rows).
What can be the reasons?
I read something like hidden row is it that if yes then pls explain.
Thanks
mysql sqlite rowid
"SELECT max(rowid) from studdetail"
this should give maximum row in the table. And it is giving at one place but at another it is giving n+1(n is the no. of rows).
What can be the reasons?
I read something like hidden row is it that if yes then pls explain.
Thanks
mysql sqlite rowid
mysql sqlite rowid
asked Mar 25 at 16:30
HarshilHarshil
41 bronze badge
41 bronze badge
1
What does this mean?And it is giving at one place but at another
– WEI_DBA
Mar 25 at 16:31
Which database? You have this tagged for multiple ones? I assume sqlite thanks to the use of the rowid column?
– Shawn
Mar 25 at 16:33
""SELECT max(rowid) from studdetail" this should give maximum row in the table" It also assumes you never delete the "last"(max(rowid))
record from the table.. Also you are talking about SQLite because you are talking about rowid?
– Raymond Nijland
Mar 25 at 16:45
Oh, wait. Are you expecting the max rowid to equal the number of rows in the table? That's not how things work.
– Shawn
Mar 25 at 18:18
add a comment |
1
What does this mean?And it is giving at one place but at another
– WEI_DBA
Mar 25 at 16:31
Which database? You have this tagged for multiple ones? I assume sqlite thanks to the use of the rowid column?
– Shawn
Mar 25 at 16:33
""SELECT max(rowid) from studdetail" this should give maximum row in the table" It also assumes you never delete the "last"(max(rowid))
record from the table.. Also you are talking about SQLite because you are talking about rowid?
– Raymond Nijland
Mar 25 at 16:45
Oh, wait. Are you expecting the max rowid to equal the number of rows in the table? That's not how things work.
– Shawn
Mar 25 at 18:18
1
1
What does this mean?
And it is giving at one place but at another
– WEI_DBA
Mar 25 at 16:31
What does this mean?
And it is giving at one place but at another
– WEI_DBA
Mar 25 at 16:31
Which database? You have this tagged for multiple ones? I assume sqlite thanks to the use of the rowid column?
– Shawn
Mar 25 at 16:33
Which database? You have this tagged for multiple ones? I assume sqlite thanks to the use of the rowid column?
– Shawn
Mar 25 at 16:33
""SELECT max(rowid) from studdetail" this should give maximum row in the table" It also assumes you never delete the "last"
(max(rowid))
record from the table.. Also you are talking about SQLite because you are talking about rowid?– Raymond Nijland
Mar 25 at 16:45
""SELECT max(rowid) from studdetail" this should give maximum row in the table" It also assumes you never delete the "last"
(max(rowid))
record from the table.. Also you are talking about SQLite because you are talking about rowid?– Raymond Nijland
Mar 25 at 16:45
Oh, wait. Are you expecting the max rowid to equal the number of rows in the table? That's not how things work.
– Shawn
Mar 25 at 18:18
Oh, wait. Are you expecting the max rowid to equal the number of rows in the table? That's not how things work.
– Shawn
Mar 25 at 18:18
add a comment |
1 Answer
1
active
oldest
votes
max(rowid)
will return the highest rowid.
If rows have been deleted, or that rowid's have been skipped (can occur), or the rowid has been manually set, the highest allocated rowid may be greater than the number of actual rows. That is the rowid value for a row does not need to exactly represent it's position.
count(rowid)
would return the number of rows.
Example
Consider the following :-
DROP TABLE IF EXISTS thetable;
CREATE TABLE IF NOT EXISTS thetable (mycolumn);
INSERT INTO thetable VALUES('A'),('B'),('C'),('D'),('E');
SELECT max(rowid), count(rowid) FROM thetable;
DELETE FROM thetable WHERE mycolumn = 'C';
SELECT max(rowid), count(rowid) FROM thetable;
INSERT INTO thetable (rowid,mycolumn) VALUES(26,'Z');
SELECT max(rowid), count(rowid) FROM thetable;
The first result, both max(rowid) and count(rowid) are 5 :-
The second result, as an intermediate row has been deleted, shows a discrepancy between the max(rowid)
(5) and count(rowid)
(4) :-
The third result, as a rowid value has been forced to be 26, shows an even greater discrepancy (26 v 5) :-
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55342395%2fmaxrowid-giving-n1-rows-as-answer%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
max(rowid)
will return the highest rowid.
If rows have been deleted, or that rowid's have been skipped (can occur), or the rowid has been manually set, the highest allocated rowid may be greater than the number of actual rows. That is the rowid value for a row does not need to exactly represent it's position.
count(rowid)
would return the number of rows.
Example
Consider the following :-
DROP TABLE IF EXISTS thetable;
CREATE TABLE IF NOT EXISTS thetable (mycolumn);
INSERT INTO thetable VALUES('A'),('B'),('C'),('D'),('E');
SELECT max(rowid), count(rowid) FROM thetable;
DELETE FROM thetable WHERE mycolumn = 'C';
SELECT max(rowid), count(rowid) FROM thetable;
INSERT INTO thetable (rowid,mycolumn) VALUES(26,'Z');
SELECT max(rowid), count(rowid) FROM thetable;
The first result, both max(rowid) and count(rowid) are 5 :-
The second result, as an intermediate row has been deleted, shows a discrepancy between the max(rowid)
(5) and count(rowid)
(4) :-
The third result, as a rowid value has been forced to be 26, shows an even greater discrepancy (26 v 5) :-
add a comment |
max(rowid)
will return the highest rowid.
If rows have been deleted, or that rowid's have been skipped (can occur), or the rowid has been manually set, the highest allocated rowid may be greater than the number of actual rows. That is the rowid value for a row does not need to exactly represent it's position.
count(rowid)
would return the number of rows.
Example
Consider the following :-
DROP TABLE IF EXISTS thetable;
CREATE TABLE IF NOT EXISTS thetable (mycolumn);
INSERT INTO thetable VALUES('A'),('B'),('C'),('D'),('E');
SELECT max(rowid), count(rowid) FROM thetable;
DELETE FROM thetable WHERE mycolumn = 'C';
SELECT max(rowid), count(rowid) FROM thetable;
INSERT INTO thetable (rowid,mycolumn) VALUES(26,'Z');
SELECT max(rowid), count(rowid) FROM thetable;
The first result, both max(rowid) and count(rowid) are 5 :-
The second result, as an intermediate row has been deleted, shows a discrepancy between the max(rowid)
(5) and count(rowid)
(4) :-
The third result, as a rowid value has been forced to be 26, shows an even greater discrepancy (26 v 5) :-
add a comment |
max(rowid)
will return the highest rowid.
If rows have been deleted, or that rowid's have been skipped (can occur), or the rowid has been manually set, the highest allocated rowid may be greater than the number of actual rows. That is the rowid value for a row does not need to exactly represent it's position.
count(rowid)
would return the number of rows.
Example
Consider the following :-
DROP TABLE IF EXISTS thetable;
CREATE TABLE IF NOT EXISTS thetable (mycolumn);
INSERT INTO thetable VALUES('A'),('B'),('C'),('D'),('E');
SELECT max(rowid), count(rowid) FROM thetable;
DELETE FROM thetable WHERE mycolumn = 'C';
SELECT max(rowid), count(rowid) FROM thetable;
INSERT INTO thetable (rowid,mycolumn) VALUES(26,'Z');
SELECT max(rowid), count(rowid) FROM thetable;
The first result, both max(rowid) and count(rowid) are 5 :-
The second result, as an intermediate row has been deleted, shows a discrepancy between the max(rowid)
(5) and count(rowid)
(4) :-
The third result, as a rowid value has been forced to be 26, shows an even greater discrepancy (26 v 5) :-
max(rowid)
will return the highest rowid.
If rows have been deleted, or that rowid's have been skipped (can occur), or the rowid has been manually set, the highest allocated rowid may be greater than the number of actual rows. That is the rowid value for a row does not need to exactly represent it's position.
count(rowid)
would return the number of rows.
Example
Consider the following :-
DROP TABLE IF EXISTS thetable;
CREATE TABLE IF NOT EXISTS thetable (mycolumn);
INSERT INTO thetable VALUES('A'),('B'),('C'),('D'),('E');
SELECT max(rowid), count(rowid) FROM thetable;
DELETE FROM thetable WHERE mycolumn = 'C';
SELECT max(rowid), count(rowid) FROM thetable;
INSERT INTO thetable (rowid,mycolumn) VALUES(26,'Z');
SELECT max(rowid), count(rowid) FROM thetable;
The first result, both max(rowid) and count(rowid) are 5 :-
The second result, as an intermediate row has been deleted, shows a discrepancy between the max(rowid)
(5) and count(rowid)
(4) :-
The third result, as a rowid value has been forced to be 26, shows an even greater discrepancy (26 v 5) :-
edited Mar 25 at 21:06
answered Mar 25 at 19:15
MikeTMikeT
21.7k11 gold badges28 silver badges44 bronze badges
21.7k11 gold badges28 silver badges44 bronze badges
add a comment |
add a comment |
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55342395%2fmaxrowid-giving-n1-rows-as-answer%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
What does this mean?
And it is giving at one place but at another
– WEI_DBA
Mar 25 at 16:31
Which database? You have this tagged for multiple ones? I assume sqlite thanks to the use of the rowid column?
– Shawn
Mar 25 at 16:33
""SELECT max(rowid) from studdetail" this should give maximum row in the table" It also assumes you never delete the "last"
(max(rowid))
record from the table.. Also you are talking about SQLite because you are talking about rowid?– Raymond Nijland
Mar 25 at 16:45
Oh, wait. Are you expecting the max rowid to equal the number of rows in the table? That's not how things work.
– Shawn
Mar 25 at 18:18