【问题标题】:SQL : query that only contain one wordSQL : 只包含一个单词的查询
【发布时间】:2013-06-18 14:13:19
【问题描述】:

我想选择只包含一个带有 SQL 通配符的单词的名称..

我试过了

select name from employee where name not like '% %'

它有效,但我想知道是否有其他方法可以使用 SQL 通配符

注意:我是一名大学生,我现在正在学习通配符。我只是想知道是否还有其他方法可以显示除上述之外仅包含一个带有通配符的单词的数据..

【问题讨论】:

  • 您查询的最终目的是什么?如果您要搜索许多记录,此搜索可能会非常慢。
  • 我的目的只是为了学习 sql 通配符
  • 你应该接受 Gedrox 的想法。这就是我会做的:)

标签: sql wildcard


【解决方案1】:

您的方法正确使用了通配符,或者您可以使用 CHARINDEX 或类似函数,具体取决于 RDBMS

select name 
from employee 
where CHARINDEX(' ',name) = 0

同样,patindex 函数或类似函数使用通配符,但这与 CHARINDEX 几乎相同,只是允许模式,因此如果查找多个空格会很有帮助。我认为您使用通配符的方法没有太大的变化。

【讨论】:

  • @projek 这也是一种有价值的技术,因为您只是在学习。但是对于非常大的记录集,这可能会非常慢。或许你应该使用这种方法建立索引。
  • 谢谢,但我知道如何用 charindex 来做,我只是想知道我可以用通配符做,但用其他方式..
【解决方案2】:

如果您有大型数据库,我建议创建新的索引列word_count,该列将由插入/更新触发器自动填充。因此,您将能够更有效地搜索此类记录。

【讨论】:

    【解决方案3】:

    这就是我使用通配符的方式。另一种方法是:

    select name 
    from employee 
    where charindex(' ', name) = 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多