如何将函数变量放入引号中并返回每个结果行的结果

How to get a function variable into quotes and to return per result row result

提问人:Ryan Barrett 提问时间:10/10/2019 更新时间:10/10/2019 访问量:24

问:

我有一个 MYSQL 函数“isStat”,它以日期作为输入,我正在尝试了解如何引用表或变量名称,以便可以在查询中使用它来设置结果值“AS 列”

当我直接运行我的函数时,我得到了预期的布尔返回值,所以我知道它正在工作。现在,我想在另一个查询中使用该函数,并将每个行项的“isStatDate”作为列返回。起初,我认为这是将我的表列作为 SELECT 上的函数输入时“或”引号的问题。过去和现在都是(也许不是我唯一的误解)。

我想在我的查询中使用我的 isStat 函数 select 调用创建一个结果列,但我不知道如何为该函数正确引用它......请指教!

尝试在列名周围使用CONCAT引号,尝试在列名周围使用QUOTE,尝试CONCAT创建一个变量并将其放在函数调用中(CONCAT日期值对于每行项目日期都是正确的,但内联函数仍然不会让步)。

SELECT isStat("2019-09-09") AS isStatDate; //works
SELECT isStat('2019-09-09') AS isStatDate; //works
SELECT isStat(2019-09-09); //returns always false
SELECT thisID, thisStartDate, isStat(thisStartDate) AS isStatDate FROM sometable WHERE somecriteria=something ORDER BY whatever DESC; // also returns false for isStatDate
SELECT thisID, thisStartDate, isStat(CONCAT('"',thisStartDate,'"')) AS isStatDate FROM sometable WHERE somecriteria=something ORDER BY whatever DESC; // also returns false for isStatDate
SELECT thisID, thisStartDate, isStat(QUOTE(thisStartDate)) AS isStatDate FROM sometable WHERE somecriteria=something ORDER BY whatever DESC; // also returns false for isStatDate
SELECT thisID, @thisdate:=thisStartDate, CONCAT('"',@thisdate,'"'),isStat(@thisdate) AS isStatDate FROM sometable WHERE somecriteria=something ORDER BY whatever DESC; // also returns false for isStatDate
SELECT isStat(CONCAT('"',2019-09-09,'"')) AS isStatDate; // does not return the expected result
SELECT isStat(QUOTE(2019-09-09)) AS isStatDate; // does not return the expected result
mysql 函数 选择 引号

评论

0赞 Ryan Barrett 10/10/2019
只是一个更新 - 如果我在我的行中在 php 中进行单独的查询,则 fetch 一切正常,因为我可以引用开始日期,即“SELECT isStat('$shDATESTART') AS isStatDate;”;
0赞 Ryan Barrett 10/10/2019
执行 @thisDate:=QUOTE(.shDATESTART),(SELECT isStat(@thisDate) AS theDate) AS aDate 导致变量作为每行引用的文本字符串,我需要为 isStat 函数提供数据,但它仍然没有返回正确的值lg_client_shifts

答: 暂无答案