【问题标题】:MySQL Search For Names - Separated by SpaceMySQL 搜索名称 - 以空格分隔
【发布时间】:2010-11-17 19:54:49
【问题描述】:

我有一个 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 行吗?
  • 当然会……抱歉,我没注意到……

标签: php mysql search


【解决方案1】:
SELECT * From table WHERE name LIKE 's%' OR name LIKE '% s%'

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

【讨论】:

    【解决方案2】:
    SELECT * FROM table WHERE name LIKE '%s%'
    

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

    【讨论】:

      猜你喜欢
      • 2015-03-31
      • 1970-01-01
      • 2022-12-15
      • 2015-10-27
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      相关资源
      最近更新 更多