Web サイトのユーザーが入力した電子メール アドレスを含むテーブルを持つ mysql データベースがあります。
電子メール フィールドに任意の数の文字が含まれ、次に 3 つの数字と @yahoo.com が含まれるすべてのレコードを選択するにはどうすればよいですか?
つまり、testemail639@yahoo.com
簡単な方法はREGEXP
、SELECT ステートメントで使用することです。
SELECT * FROM records WHERE email REGEXP '^\w+\d{3}\@.*$'
上記のステートメントはテストされていませんが、より良い道を導くはずです。
これを試して
SELECT * FROM records WHERE email REGEXP '^\w+([\.-]?\w+)?([0-9]{3})@\w+([\.-]?\w+)*(\.\w{2,4})+$'
^\w+([\.-]?\w+)?([0-9]{3})@\w+([\.-]?\w+)*(\.\w{2,4})+$
スペースを含まない電子メールの文字列とそれに続く3 つの数字パターンを厳密にチェックします
SELECT * FROM table WHERE email REGEXP '[0-9]{3}@yahoo\.com'