2011-01-12 120 views
0

表中的一列包含電子郵件地址。Help with a MySQL SELECT WHERE子句

我有一個文本字符串,其中包含用逗號分隔的幾個電子郵件地址的用戶名。如果需要讓我的SELECT WHERE子句正常工作,我可以將文本串入數組中。

文本字符串搜索主題是「鮑勃,莎莉,史蒂夫」

我想製作一個WHERE子句,僅返回其中在表中的電子郵件地址的用戶名部分匹配用戶名的一個在我的文字行字符串搜索參數。

因此,一行[email protected]不會被退回,但[email protected]會。

有沒有人有產生此結果的WHERE子句示例?

謝謝。

+1

[email protected]怎麼樣? – 2011-01-12 18:46:02

+0

@OMG小馬:Ooooo很好! ;) – FrustratedWithFormsDesigner 2011-01-12 18:47:08

回答

1

也許像

WHERE email like '%bob%' or email like '%sally%' or email like '%steve%' 

注意,這也將匹配[email protected]。如果你只是想匹配起始字符,簡單地忽略領先%

WHERE email like 'bob%' or email like 'sally%' or email like 'steve%' 

如果你想更嚴格,你可以嘗試:

WHERE email like '[email protected]%.com' or email like '[email protected]%.com' or email like '[email protected]%.com' 

此外,在LIKE操作讀了,和正則表達式(你不需要在這裏,但你最終可能會需要它)。

+0

酷FWFD ...我會試一試,並回發我的結果 – 2011-01-12 18:47:19

0

這會爲你工作,但我認爲這將是非常緩慢的

WHERE SUBSTRING(email, 1, (LOCATE('@', email) - 1)) in ('steve', 'smith', ....) 
0

下面的語句將在該地址與「鮑勃@」開始「電子郵件」列中選擇任何行。 你會用你試圖匹配的用戶名替換「bob」。

SELECT * FROM table_name WHERE email REGEXP "^[email protected]"