2011-02-25 141 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