You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server新手咨询:含指定字符/首尾匹配的LIKE语句写法是否正确

关于SQL Server LIKE操作符的两个问题解答

嘿,作为SQL新手不用慌,咱们一步步把这两个问题理清楚:

问题1:查询包含字母n的countryname列

你的写法有点小问题哦,LIKE 后面每次只能跟一个匹配模式,多个条件需要用逻辑运算符(比如 OR)来连接。

  • 如果你想只要countryname里包含字母n(不管在开头、中间还是结尾),只需要写:

    SELECT countryname FROM <table name> WHERE countryname LIKE '%n%';
    

    这里的%是通配符,代表任意长度的任意字符(包括0个字符),所以%n%就表示前后可以有任意内容,只要中间存在n就行。

  • 如果你是想明确查询以n开头、以n结尾或者包含n的记录,其实%n%已经涵盖了后两种情况,不过要是想分开写条件,得这么来:

    SELECT countryname FROM <table name> 
    WHERE countryname LIKE 'n%' -- 以n开头
       OR countryname LIKE '%n' -- 以n结尾
       OR countryname LIKE '%n%'; -- 包含n(这行其实可以省略,因为前两种情况已经被包含在这个模式里了)
    

    你的原写法把三个模式用逗号隔开是错误的,SQL会直接报错哦。

问题2:查询以字母c开头或以字母y结尾的countryname列

你的原写法在逻辑和模式上都有偏差:

  • 首先,你要的是**“以c开头”或者“以y结尾”**,这是逻辑“或”的关系,得用OR而不是AND;
  • 其次,模式写错了——'y%'是以y开头,你要的是以c开头,所以应该是'c%',以y结尾的正确模式是'%y'。

正确的写法应该是:

SELECT countryname FROM <tablename> 
WHERE countryname LIKE 'c%' -- 以c开头
   OR countryname LIKE '%y'; -- 以y结尾

如果用AND的话,会变成查询既以c开头又以y结尾的记录,这和你的需求完全不符啦。

内容的提问来源于stack exchange,提问作者arbys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:05:46