SQL - 按单词开头搜索

tes*_*001 10 sql extract

我想编写一个SQL SERVER语句,用于搜索以某些内容开头的字符串中单词的开头.

例如,如果我在公司记录中搜索'em',我应该得到:

艾米莉公司

艾美奖

忘记他们

Lemming,LLC

我可以通过将字符串提取/切片成数组并搜索每个单词的开头来在PHP中完成此操作.但是如何在不借助存储过程/函数的情况下在SQL服务器中编写此查询?

cha*_*zjo 20

JW的答案适用于Em处于该领域最开始的条目.

如果您还需要检索单词不是字符串中第一个的值,请尝试:

SELECT * FROM tableName WHERE CompanyName LIKE 'Em%' or CompanyName LIKE '% Em%'
Run Code Online (Sandbox Code Playgroud)

(这假设所有单词都用空格分隔.)

  • 请注意,这不是一个非常有效的解决方案,并且在大型表上运行缓慢. (3认同)
  • @ mathkid91:这取决于您的要求和您拥有的数据量.首先,确保您的RDBMS索引您的字段.或者创建自己的单独索引表,将CompanyName中的每个单词分隔为不同的记录,然后查询. (2认同)