我正在查詢歌曲數據庫,並且想要分離出包含歌曲「Tube」的行(可能會出現任意數量的字符前後,例如「Track 01. Tube - > Another song」),但不匹配歌曲「First Tube」或「Last Tube」,這些歌曲也可能有多餘字符。MySQL查詢中的匹配組與正則表達式包含一些單詞但不包含其他
我一直是這樣的查詢這樣做:
SELECT * FROM `songs` WHERE `song` LIKE ('%Tube%') and song not like ('%first%') and song not like ('%last%');
但寧願使用正則表達式,這樣我可以(在PHP代碼中一樣)使用在其他地方相同的匹配。
我想是這樣的:
SELECT * FROM songs WHERE song REGEXP '.*(first|last){0}.*(tube).*';
但它沒有明顯的工作,它匹配「第一管」的歌曲了。
老實說,我不認爲你要使用'REGEXP',除非你必須(你不這樣做)。 'REGEXP'可能是存在的最有限的正則表達式。 – inhan
感謝您提供幫助。你是對的,我不必(我的代碼正在處理'LIKE'和'NOT LIKE's),但我想使用一個正則表達式,所以我可以重新使用模式匹配的外部的MySQL 。 – ehed