2011-01-12 23 views
0

テーブルの列には電子メールアドレスが含まれています。MySQL SELECT WHERE句のヘルプ

私は電子メールアドレスのいくつかのユーザー名がカンマで区切られたテキスト文字列を持っています。 SELECT WHERE句を正しく動作させるために、必要に応じてテキストを配列に挿入することができます。私はテーブル内の電子メールアドレスのユーザー名部分が私のテキストでのユーザ名のいずれかと一致する行を返しますWHERE句を生成したい

テキスト文字列の検索引数がある

「ボブ、サリー、スティーブ

文字列検索の引数。

したがって、[email protected]の行は返されませんが、[email protected]は返されません。

誰もこの結果を生成するWHERE句サンプルを持っていますか?

ありがとうございました。これも[email protected]に一致すること

+1

[email protected]はどうですか? –

+0

@OMGポニー:いいよ! ;) – FrustratedWithFormsDesigner

答えて

1

たぶん何か

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

ように注意してください。あなただけの開始文字を一致させたい場合は、単に主要な %を省略:

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 ...試して結果を返すよ –

+0

私は、ユーザ名で始まるアドレスのためだけにしたいので、テストの開始%を省略していました。ありがとう。 –

0

これはあなたのために働くだろうが、私は次の文は、アドレスが「ボブ@」で始まる[メール]欄に任意の行を選択します、それは非常に遅い

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

になると思います。 あなたは、あなたがマッチングしようとしているユーザー名に "bob"を置きます。

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

これも試してみます –

+0

いいえ、動作しませんでした... REGEXP "^ bob @"またはREGEXP "^ sally @"またはREGEXP "^ steve @" - 返された行がありません –

+0

複数の条件を追加する場合SELECT * FROM table_name WHERE email REGEXP "^ bob @" OR電子メールREGEXP "^ sally @"または電子メールREGEXP "^ steve @" –