【发布时间】:2011-02-25 16:59:32
【问题描述】:
我想过滤我的 SQL 查询的结果。我想选择某些列中包含特定文本的所有内容。
例子:
SELECT * FROM categories WHERE (name 在其值 ex 中具有“abc”值。 MyabcCategory)
也许在查询中这样做不是一个好主意,也许最好先获取所有然后过滤数组?但我不知道该怎么做。
【问题讨论】:
我想过滤我的 SQL 查询的结果。我想选择某些列中包含特定文本的所有内容。
例子:
SELECT * FROM categories WHERE (name 在其值 ex 中具有“abc”值。 MyabcCategory)
也许在查询中这样做不是一个好主意,也许最好先获取所有然后过滤数组?但我不知道该怎么做。
【问题讨论】:
使用LIKE 和% 通配符:
SELECT * FROM categories WHERE name LIKE '%abc%'
这将为您提供所有包含abc 的记录。
【讨论】:
您想使用LIKE operator 和% 来匹配特定单词前后的任何字符:
select *
from categories
where name like '%abc%';
但请注意,这样做时,MySQL 将在每次执行查询时扫描表的每一行……如果您有大量数据,这可能不是很好。
如果您正在搜索某种文本,您可能想要:
FULLTEXT index。【讨论】:
SELECT * FROM categories WHERE name LIKE '%abc%'
【讨论】: