2

列のあるテーブルがありphoneます。電話番号は +1 (123) 456-3780 のようです。ユーザーが検索フィールド「35」に入力した場合、電話を持つすべてのユーザーを彼に表示する必要があります。

+3 (534) 000-1010

+1 (350) 000-9090

+1 (003) 534-2343

+1 (001) 223-5323 etc.

私はそのようなことをしようとしました

SELECT * FROM `mytable` WHERE `phone` LIKE '%3%5'

しかし、これは最善の解決策ではありません。なぜなら、クエリは +3 (000) 000-500 のような他の電話を取得するからです。

RLIKE などを使用したいのですが、必要な正規表現をどのように作成し、どのように表示すればよいかわかりません。

4

2 に答える 2

4

[() -]*各入力文字の間に必要です:

SELECT * FROM `mytable`
WHERE `phone` REGEXP '3[() -]*5'

これにより、句読点は数字の「文字列」内に存在できますが、それ以外はありません。

于 2012-11-05T11:51:46.597 に答える