2

green MySql REGEXP を使用して、列におよび 2012が発生する行を見つけようとしています

私は.+正規表現で使用しています。

これは機能します:

select  'green 2012-01' REGEXP 'green.+2012'

戻り値1

しかし、「2012」を最初に配置すると、0 が返されます

select  'green 2012-01' REGEXP '2012.+green';

戻り値0

MYSQL ソフトウェア バージョンを使用しています: 5.1.43 - MySQL Community Server (GPL)

4

2 に答える 2

2

正規表現は順序に依存します。あなたがする必要があるのは、 | を置くことです (または) 2 つの項目の間に演算子を追加して、どちらかを探すようにします。

select 'green 2012-01' REGEXP '(green.*2012)|(2012.*green)'
于 2012-11-07T17:55:10.423 に答える
0

の代わりにREGEX、効率は低下する可能性がありますが、単純にLOCATE2回使用できます。

SELECT * FROM table WHERE LOCATE('2012', column) AND LOCATE('green', column);
于 2012-11-07T17:38:37.227 に答える