我試圖使用MySQL REGEXP找到行,其中發生在我的正則表達式使用.+
列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社區服務器(GPL)
我試圖使用MySQL REGEXP找到行,其中發生在我的正則表達式使用.+
列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社區服務器(GPL)
作爲替代REGEX
,而潛在的效率不高,你可以簡單地使用LOCATE
兩次。
SELECT * FROM table WHERE LOCATE('2012', column) AND LOCATE('green', column);
我使用一個輸入框來獲取搜索字符串動態地構造查詢。用戶將輸入20012 ^綠色,並將其轉換爲2012. +綠色。它的工作原理,當綠色^ 2012年進入 –
你最終搜索的用戶進入每個字符串? –
我連接一表的列和運行一個查詢搜索的用戶已經進入e.g綠色^ 2012的字符串。用戶將試圖找到同時具有綠色和2012年在它的行。 –
正則表達式有點依賴於順序。你需要做的是把一個| (或)運營商之間的兩個項目,使其尋找任何一個。
select 'green 2012-01' REGEXP '(green.*2012)|(2012.*green)'
這可能是[XY問題](http://mywiki.wooledge.org/XyProblem)。你真的*試圖做什麼? – ghoti