2013-04-10 109 views
0

不工作我有一個SQL查詢:SQL SELECT查詢在MySQL

SELECT * FROM presentations_db.presenters_tbl WHERE e-mail LIKE '%@%';

它似乎沒有工作,我不知道爲什麼。如果我刪除它的WHERE部分,但包含所有記錄。我只想要有電子郵件地址的記錄。我正在使用mysql工作臺。電子郵件字段是一個VARCHAR(45)。它看起來很簡單,但不是......沒有反饋或錯誤消息。結果列表甚至沒有打開。

+0

我已覈實下列內容: – 2013-04-10 14:40:05

+0

電子郵件字段存在且拼寫正確。 presentations_db.presenters_tbl存在並拼寫正確。 – 2013-04-10 14:41:11

+0

它沒有WHERE部分工作的事實告訴我必須有一個電子郵件領域的問題,但什麼? – 2013-04-10 14:42:47

回答

3

您必須用反引號包住列名以避免語法錯誤。

SELECT * FROM presentations_db.presenters_tbl WHERE `e-mail` LIKE '%@% 

,如果你不與反引號把它包起來,它會執行artihmetic操作:導致您收到此錯誤

郵件Ë

減去消息:Unknown column 'e' in 'where clause'


+1

+1用於解釋語法錯誤 – 2013-04-11 07:04:43

0

您查詢是正確的只需更換這

e-mail 

`e-mail` 
0

除了與反單引號或雙引號中需要引用(如果ANSI引用已啓用)我會更改where子句:

SELECT * FROM presentations_db.presenters_tbl WHERE `e-mail` IS NOT NULL; 

因爲所有你想要的是有電子郵件設置的記錄。但是,它不檢查地址的有效性。