2016-11-09 11 views

答えて

2

として完全修飾ドメインまたは単純に戻ってくる

select * from myTable where hostname IN ('host1-%', 'host2-%', 'host3-%') 

は、これはあなたが

select * from myTable where hostname REGEXP '^host[123]-' 

または

select * from myTable where hostname REGEXP '^host[1-3]-' 
+1

'HOST3%''、あなたがいません最後に。*が必要です。 – Barmar

+0

それを見つけていただきありがとうございます - カットアンドペーストで^を見落として、自動的に%を。*に変換しました。 – PaulF

1

がに追加するにはやりたいんPaulFの答えはと組み合わせてLIKEを使用する必要があります例えば、。

SELECT * FROM myTable 
WHERE hostname LIKE 'host%' AND hostname REGEXP '^host[1-3]-' 

REGEXPを処理する際、MySQLはインデックスを使用しませんので、これはですが、パターンが一定の接頭辞を持っているときには、LIKEのためにそれを使用します。したがって、hostname列にインデックスがある場合は、インデックスを使用してhostXXXに絞り込み、それらの行で正規表現の一致を実行するだけで済みます。参照してくださいMysql optimization for REGEXP

関連する問題