2011-11-17 72 views
0

捉迷藏以下SQL請求彈出錯誤有關,因爲在數據庫中找到一個無效的函數SQL文本嘗試運行功能

SELECT Name, Street FROM Persons 

這是最有可能的條目像街(更多)

如何確保這些錯誤不會彈出?

最佳庫爾特

+2

哪裏是用方括號的文字? – Zohaib

回答

0

你的問題是不正確的:

什麼你意思要問的是:

SELECT Name(), Street FROM Persons 

爲什麼MySQL將name()作爲函數?

這是因爲()括號是MySQL如何知道字段名稱和函數之間的區別。
如果將括號附加到標識符,MySQL會將其解釋爲函數。如果該功能不存在,則會發生錯誤。
如果你不希望在這種情況下不使用()。

()都OK,如果你有一個空間在他們面前:

SELECT name, (a+b) as aplusb FROM t1 <<-- OK 
SELECT name FROM t1 WHERE (a = 1)  <<-- OK 
SELECT name(a+b) FROM t1    <<-- Incorrect, tries to run a function named `name` 
+0

不,那是不是我的意思問: 在DB有一個街具有以下名稱: _ElmStreet(14)_ 這是由SQL解釋莫名其妙的功能 – Dinkheller