MySQL - 过滤结果

时间:2011-02-25 16:59:33

标签: php mysql sql pdo

我想过滤我的SQL查询的结果。我想在某些专栏中选择具有某些特定文本的所有内容。

示例:

  

SELECT * FROM categories WHERE (name   在它的价值中有'abc'值。   MyabcCategory)

也许在查询中这样做也不是一个好主意,也许最好先获取所有然后过滤数组?但我不知道怎么做那个以太。

3 个答案:

答案 0 :(得分:5)

LIKE%通配符一起使用:

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

这将为您提供其中某处abc的所有记录。

You can learn more about it here :)

答案 1 :(得分:3)

您希望使用LIKE operator%匹配特定字词前后的任何字符:

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


但请注意,这样做,每次执行查询时,MySQL都会扫描表格的每一行......如果您有大量数据,这可能不会很好。

如果您要搜索某种文字,可能需要:

  • 如果您正在使用MyISAM表,请使用FULLTEXT index
  • 或者,使用与MySQL分离的解决方案,使用特定的索引/搜索引擎,例如Solr

答案 2 :(得分:2)

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