How to select TOP 1 results _without_ using LIMIT in SQLite?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I'm writing an SQLite select statement and want to pick out the first hit only that satisfy my criterion.
My problem is that I'm writing code inside a simulation framework that wraps my SQLite code before sending it to the database, and this wrapping already adds 'LIMIT 100' to the end of the code.
What I want to do:
SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1
What happens when this simulation development framework has done its job:
SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1 LIMIT 100
exec error near "LIMIT": syntax error
So my question is: How do I work around this limitation? Is there any way to still limit my results to give only one hit back despite that the statement will end in 'LIMIT 100'? I'm thinking something like creating a temporary table, add an index and filter on that, but my knowledge is limited to simple database queries.
sqlite
add a comment |
I'm writing an SQLite select statement and want to pick out the first hit only that satisfy my criterion.
My problem is that I'm writing code inside a simulation framework that wraps my SQLite code before sending it to the database, and this wrapping already adds 'LIMIT 100' to the end of the code.
What I want to do:
SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1
What happens when this simulation development framework has done its job:
SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1 LIMIT 100
exec error near "LIMIT": syntax error
So my question is: How do I work around this limitation? Is there any way to still limit my results to give only one hit back despite that the statement will end in 'LIMIT 100'? I'm thinking something like creating a temporary table, add an index and filter on that, but my knowledge is limited to simple database queries.
sqlite
1
Considering my lack of knowledge a simulation framework, try adding comment characters "--" to the end of your query
– Dmitry Bogdanovich
Jan 3 at 12:33
1
You can try a subquery:select * from (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1)
or just a CTE:with myquery as (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1) select * from myquery
– Corion
Jan 3 at 13:49
The subqueryselect * from (select ... limit 1)
works fine and perfectly solves my problem!
– petee
Jan 7 at 14:25
add a comment |
I'm writing an SQLite select statement and want to pick out the first hit only that satisfy my criterion.
My problem is that I'm writing code inside a simulation framework that wraps my SQLite code before sending it to the database, and this wrapping already adds 'LIMIT 100' to the end of the code.
What I want to do:
SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1
What happens when this simulation development framework has done its job:
SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1 LIMIT 100
exec error near "LIMIT": syntax error
So my question is: How do I work around this limitation? Is there any way to still limit my results to give only one hit back despite that the statement will end in 'LIMIT 100'? I'm thinking something like creating a temporary table, add an index and filter on that, but my knowledge is limited to simple database queries.
sqlite
I'm writing an SQLite select statement and want to pick out the first hit only that satisfy my criterion.
My problem is that I'm writing code inside a simulation framework that wraps my SQLite code before sending it to the database, and this wrapping already adds 'LIMIT 100' to the end of the code.
What I want to do:
SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1
What happens when this simulation development framework has done its job:
SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1 LIMIT 100
exec error near "LIMIT": syntax error
So my question is: How do I work around this limitation? Is there any way to still limit my results to give only one hit back despite that the statement will end in 'LIMIT 100'? I'm thinking something like creating a temporary table, add an index and filter on that, but my knowledge is limited to simple database queries.
sqlite
sqlite
asked Jan 3 at 12:29
peteepetee
62
62
1
Considering my lack of knowledge a simulation framework, try adding comment characters "--" to the end of your query
– Dmitry Bogdanovich
Jan 3 at 12:33
1
You can try a subquery:select * from (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1)
or just a CTE:with myquery as (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1) select * from myquery
– Corion
Jan 3 at 13:49
The subqueryselect * from (select ... limit 1)
works fine and perfectly solves my problem!
– petee
Jan 7 at 14:25
add a comment |
1
Considering my lack of knowledge a simulation framework, try adding comment characters "--" to the end of your query
– Dmitry Bogdanovich
Jan 3 at 12:33
1
You can try a subquery:select * from (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1)
or just a CTE:with myquery as (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1) select * from myquery
– Corion
Jan 3 at 13:49
The subqueryselect * from (select ... limit 1)
works fine and perfectly solves my problem!
– petee
Jan 7 at 14:25
1
1
Considering my lack of knowledge a simulation framework, try adding comment characters "--" to the end of your query
– Dmitry Bogdanovich
Jan 3 at 12:33
Considering my lack of knowledge a simulation framework, try adding comment characters "--" to the end of your query
– Dmitry Bogdanovich
Jan 3 at 12:33
1
1
You can try a subquery:
select * from (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1)
or just a CTE: with myquery as (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1) select * from myquery
– Corion
Jan 3 at 13:49
You can try a subquery:
select * from (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1)
or just a CTE: with myquery as (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1) select * from myquery
– Corion
Jan 3 at 13:49
The subquery
select * from (select ... limit 1)
works fine and perfectly solves my problem!– petee
Jan 7 at 14:25
The subquery
select * from (select ... limit 1)
works fine and perfectly solves my problem!– petee
Jan 7 at 14:25
add a comment |
0
active
oldest
votes
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%2f54022322%2fhow-to-select-top-1-results-without-using-limit-in-sqlite%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f54022322%2fhow-to-select-top-1-results-without-using-limit-in-sqlite%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
Considering my lack of knowledge a simulation framework, try adding comment characters "--" to the end of your query
– Dmitry Bogdanovich
Jan 3 at 12:33
1
You can try a subquery:
select * from (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1)
or just a CTE:with myquery as (SELECT x, y, z FROM myTable WHERE a = 0 ORDER BY y LIMIT 1) select * from myquery
– Corion
Jan 3 at 13:49
The subquery
select * from (select ... limit 1)
works fine and perfectly solves my problem!– petee
Jan 7 at 14:25