2010-11-20 97 views
0

我想編寫一個查詢,以在名爲Description的列中選擇具有單詞「piggy」3次以上的所有行。如果一個字在列中出現多次出現,MySQL會選擇表格

我知道查詢在一個名爲描述列單詞 「小豬」 選擇行會:

SELECT * FROM表WHERE Description LIKE 「%小豬%」

所以我需要做什麼才能選擇,只有當「小豬」一詞出現超過3次。

回答

1
SELECT * FROM table WHERE Description LIKE "%piggy%piggy%piggy%" 

似乎是最簡單的方法。

2

馬里斯的回答是好的,容易(除了我相信你想要的3倍以上),但這些都可以更輕鬆地自定義:這裏

SELECT * FROM table WHERE DESCRIPTION LIKE CONCAT('%', REPEAT('piggy%', 4)) 

SELECT * FROM table WHERE Description != SUBSTRING_INDEX(Description, 'piggy', 4) 

SUBSTRING_INDEX返回字符串的部分的左側第四次出現'小豬'或整個字符串,如果它不匹配多次(所以查詢拋出匹配整個字符串的行)。那麼如果你改變了你想要的出現次數,只需要改變這個數字。

當然,如果您的表中有多行,那麼所有這些選項都會非常慢。

相關問題