2

たとえば、DBにランダムな文字列APKHDPがあるとします。

PHPという文字を含むすべての文字列を(この順序で)検索したいと思います。そこで、PHPを検索すると、上記の文字列が返されます。または、HPPを検索しても、何も返されません。

おそらくREGEXを使用して、これを可能にする簡単な解決策はありますか?とてもシンプルに聞こえます。しかし、私が見つけた答えは、これまでのところ非常に複雑です。

私はこれをPHPで使用しています(したがって例です!)。これが最善の方法である場合は、PHPをソリューションに統合できてうれしいです。

4

3 に答える 3

3
SELECT * FROM table WHERE text_field REGEXP '.*P.*H.*P.*'

ドキュメント。_

于 2012-07-09T10:24:13.103 に答える
2

MySQLの正規表現を使用します-一致させることはできますが、置き換えることはできません-例:

SELECT'APKHDP' REGEXP('[PHP]')

'1'を返します(つまり、正規表現が文字列と一致しました)。

上記の正規表現はニーズに合わない場合がありますが(P、H、Pの文字の使用に一致します)、微調整する必要があります。

正規表現をより複雑にするか、複数の一致を行うことができます。

SELECT field FROM TABLE WHERE field REGEXP(match1) AND field REGEXP(match2)..etc

あなたにとって最も単純に見える方...

リンク:REGEXPのMySQLマニュアル

于 2012-07-09T10:22:25.663 に答える
0
SELECT * 
FROM  `COLUMNS` 
WHERE  `TABLE_NAME` 
REGEXP  'APKHDP'
于 2012-07-09T10:23:25.957 に答える