Как получить переменную функции в кавычках и вернуть результат по строке результата - PullRequest
0 голосов
/ 10 октября 2019

У меня есть функция MYSQL, 'isStat', которая принимает в качестве даты дату, я пытаюсь понять, как заключить в кавычки таблицу или имя переменной, чтобы ее можно было использовать в запросе для установки значения результата 'Столбец AS'

Когда я запускаю свою функцию напрямую, я получаю ожидаемые логические возвращаемые значения, поэтому я знаю, что она работает. Теперь я хочу использовать эту функцию в другом запросе и возвращать «isStatDate» для каждого элемента строки в виде столбца. Сначала я подумал, что это проблема с кавычками "или", когда столбец моей таблицы используется в качестве функции ввода в SELECT. И так было, и есть (и, возможно, не единственное мое недоразумение).

Я бы хотелчтобы создать столбец результатов с помощью моего вызова функции isStat в моем запросе, но я не могу понять, как правильно его заключить в кавычки для функции ... пожалуйста, посоветуйте!

Пытался СОГЛАСОВАТЬ кавычки вокруг имени столбца, пробовал 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
...