2011-02-25 216 views
1

我想過濾我的SQL查詢的結果。我想選擇某些列中包含特定文本的所有內容。MySQL - 過濾結果

例子:

SELECT * FROM類別WHERE (名稱 有 'ABC' 值在它的值ex MyabcCategory)

而且也許不是很好的主意在查詢中這樣做,也許最好是全部獲取,然後過濾數組呢?但我不知道該怎麼做。

回答

2
SELECT * FROM categories WHERE name LIKE '%abc%' 
3

您要使用的LIKE operator,與%您的特定詞之前和之後的任何字符匹配:

select * 
from categories 
where name like '%abc%'; 


但要注意,這樣做,MySQL會掃描每次執行查詢時表格的每一行......如果您有大量數據,這可能不是很好。

如果你正在尋找一些類型的文本,你可能要麼需要:

  • 使用FULLTEXT index,如果你使用MyISAM表的工作。
  • 或者,使用與MySQL分離的解決方案,並使用特定的索引/搜索引擎,如Solr
+0

想念你的男人:) – Sarfraz 2011-02-25 17:04:45

+0

謝謝:-)過去幾個月,我沒有去過很多地方;太多事情不能做......不確定我會留下來,但是,今天我有點時間,錯過了過去的日子^^ – 2011-02-25 17:06:19

+0

我們錯過了一大堆知識,尤其是在PHP標記中。我希望你有一天能管理它的時間:)謝謝 – Sarfraz 2011-02-25 17:10:31