Mysql user defined variable date type in where clause









up vote
0
down vote

favorite












I tried to simplify my long queries with user defined variables in Mysql. Unfortunately, these variables don't behave in where clause as expected - especially variables where is stored date. Here are 3 simplified queries:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE @var_date >= "2000-01-01"


This returns 0 rows



Another one:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01"


This return 0 rows as well.



SELECT id, 
@var_date := `date`
FROM aroma_exchanges
WHERE `date` >= "2000-01-01"


This one works as expected, returns a lot of rows. In my case the definition of date is very complex and in my real query I used it few times so I don't want to repeat the same subquery 5-10 times if I can store it into one variable and use it as I need to.
Question: how to make the first or second query to work properly? Thanks.










share|improve this question























  • The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
    – juergen d
    Nov 8 at 12:59











  • It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
    – Madhur Bhaiya
    Nov 8 at 13:06










  • @MadhurBhaiya: Aliases won't work either in this case.
    – juergen d
    Nov 8 at 13:13














up vote
0
down vote

favorite












I tried to simplify my long queries with user defined variables in Mysql. Unfortunately, these variables don't behave in where clause as expected - especially variables where is stored date. Here are 3 simplified queries:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE @var_date >= "2000-01-01"


This returns 0 rows



Another one:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01"


This return 0 rows as well.



SELECT id, 
@var_date := `date`
FROM aroma_exchanges
WHERE `date` >= "2000-01-01"


This one works as expected, returns a lot of rows. In my case the definition of date is very complex and in my real query I used it few times so I don't want to repeat the same subquery 5-10 times if I can store it into one variable and use it as I need to.
Question: how to make the first or second query to work properly? Thanks.










share|improve this question























  • The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
    – juergen d
    Nov 8 at 12:59











  • It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
    – Madhur Bhaiya
    Nov 8 at 13:06










  • @MadhurBhaiya: Aliases won't work either in this case.
    – juergen d
    Nov 8 at 13:13












up vote
0
down vote

favorite









up vote
0
down vote

favorite











I tried to simplify my long queries with user defined variables in Mysql. Unfortunately, these variables don't behave in where clause as expected - especially variables where is stored date. Here are 3 simplified queries:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE @var_date >= "2000-01-01"


This returns 0 rows



Another one:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01"


This return 0 rows as well.



SELECT id, 
@var_date := `date`
FROM aroma_exchanges
WHERE `date` >= "2000-01-01"


This one works as expected, returns a lot of rows. In my case the definition of date is very complex and in my real query I used it few times so I don't want to repeat the same subquery 5-10 times if I can store it into one variable and use it as I need to.
Question: how to make the first or second query to work properly? Thanks.










share|improve this question















I tried to simplify my long queries with user defined variables in Mysql. Unfortunately, these variables don't behave in where clause as expected - especially variables where is stored date. Here are 3 simplified queries:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE @var_date >= "2000-01-01"


This returns 0 rows



Another one:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01"


This return 0 rows as well.



SELECT id, 
@var_date := `date`
FROM aroma_exchanges
WHERE `date` >= "2000-01-01"


This one works as expected, returns a lot of rows. In my case the definition of date is very complex and in my real query I used it few times so I don't want to repeat the same subquery 5-10 times if I can store it into one variable and use it as I need to.
Question: how to make the first or second query to work properly? Thanks.







mysql date variables user-defined






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 8 at 13:17

























asked Nov 8 at 12:57









mesnicka

80861227




80861227











  • The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
    – juergen d
    Nov 8 at 12:59











  • It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
    – Madhur Bhaiya
    Nov 8 at 13:06










  • @MadhurBhaiya: Aliases won't work either in this case.
    – juergen d
    Nov 8 at 13:13
















  • The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
    – juergen d
    Nov 8 at 12:59











  • It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
    – Madhur Bhaiya
    Nov 8 at 13:06










  • @MadhurBhaiya: Aliases won't work either in this case.
    – juergen d
    Nov 8 at 13:13















The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
– juergen d
Nov 8 at 12:59





The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
– juergen d
Nov 8 at 12:59













It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
– Madhur Bhaiya
Nov 8 at 13:06




It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
– Madhur Bhaiya
Nov 8 at 13:06












@MadhurBhaiya: Aliases won't work either in this case.
– juergen d
Nov 8 at 13:13




@MadhurBhaiya: Aliases won't work either in this case.
– juergen d
Nov 8 at 13:13

















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',
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
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53208228%2fmysql-user-defined-variable-date-type-in-where-clause%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53208228%2fmysql-user-defined-variable-date-type-in-where-clause%23new-answer', 'question_page');

);

Post as a guest














































































Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

PHP code is not being executed, instead code shows on the page

Malaysia to Papua New Guinea by motorcycle?