MySQL搜索名称 - 按空格分隔

时间:2010-11-17 19:54:49

标签: php mysql search

我有一个MySQL数据库和一个名称列如下的表:

id  name           age
1   samuel lee     31
2   doug sokira    32
3   vernon smith   33

我想在数据库中搜索名称。到目前为止我有这个问题:

SELECT * FROM table WHERE name LIKE 's%'

这将返回ID为1的第一条记录。

但是,我希望查询能够进一步从空格分隔的文本中进行搜索。所以,换句话说,搜索应该通过名字和姓氏来完成。

我愿意坚持这个数据库设计,其中名字和姓氏存储在一个单独的列中。

因此,上面的查询应该返回第1,2和3行。

我应该如何制定我的查询?

2 个答案:

答案 0 :(得分:5)

SELECT * From table WHERE name LIKE 's%' OR name LIKE '% s%'

请注意,这不能使用任何索引,因此总是慢狗。请重新考虑拆分列。

答案 1 :(得分:4)

SELECT * FROM table WHERE name LIKE '%s%'

将返回第1,2和3行,因为它们都包含's'。