我已經在SQL中創建了一個名爲removeYear的函數。該功能定義爲:MySQL:無法從SELECT語句內調用函數
CREATE FUNCTION removeYear(passedTitle CHAR(255), passedYear CHAR(100))
RETURNS CHAR(255) DETERMINISTIC
該功能正常工作。問題是我無法使用我的列名之一在SELECT語句中調用它。例如:
SELECT movieid, title
FROM movies
WHERE movieid = 40;
工程。
SELECT movieid, title, removeYear("bluh", movies.year)
FROM movies
WHERE movieid = 40;
作品。
SELECT movieid, title, removeYear(movies.title, movies.year)
FROM movies
WHERE movieid = 40;
提供了以下錯誤: 錯誤代碼:1054未知列在 '字段列表' '標題'。
我只有沒有想法是什麼導致這個錯誤。 movies.title是一個有效的列。我已經嘗試調用與我的表中的其他列的功能,並且這些都工作正常。例如:
SELECT movieid, title, removeYear(movies.movieid, movies.year)
FROM movies
WHERE movieid = 40;
執行得很好。
編輯: 在我沮喪的時候,我決定在無數次的時間裏檢查包含函數的100多行代碼,最後發現代碼中導致錯誤的單個單詞。
就在整個代碼塊單的時候,我不小心寫的
passedTitle
雖然我的問題是固定的
title
相反,這還引出了一個問題:
SQL函數是否與調用它的SELECT語句共享一個名稱空間?
你可以發佈你的功能的身體嗎? –
重新創建表格? – JBES