【问题标题】:How to use "." in LIKE query?如何使用 ”。”在 LIKE 查询中?
【发布时间】:2010-01-28 17:26:10
【问题描述】:

当我在LIKE 运算符查询中使用. 运算符时,没有选择任何记录。

我的查询:

SELECT *
FROM XSP_AssetList_V 
WHERE AccountID = '5d6b1eab-1697-de11-a2d1-00505617006d'
AND PrinterSerialNumber
LIKE '%13.12%' 

如何在LIKE中使用.?

【问题讨论】:

  • 请发表您认为应该选择的记录的值。
  • 我在记录中有一个ip地址,其值为13.121.238.11我如何使用sql查询选择值为13.121.238.11的记录
  • IP 地址查询在我的随机表之一中运行良好,就像您拥有它一样。您确定不是您的帐户# 导致了预期结果吗?
  • 当我编写没有“.”的查询时,它工作正常,但当我说 13.121 时,它没有显示任何记录。 SELECT * FROM XSP_AssetList_V WHERE AccountID = '5d6b1eab-1697-de11-a2d1-00505617006d' AND PrinterSerialNumber LIKE '%13%'

标签: tsql sql-like


【解决方案1】:

在 SQL 中,单字符通配符是“_”而不是“.”

LIKE '%13_12%'
  • % 匹配任何零个或多个字符的字符串。
  • _ 匹配任意单个字符。
  • [ ] 匹配指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。
  • [^] 匹配任何不在指定范围(例如,[^a - f])或集合(例如,[^abcdef])内的单个字符。

【讨论】:

  • 我认为 OP 不是在寻找单字符通配符。它在问为什么实际的'。字符与应匹配的位置不匹配。
【解决方案2】:

您所做的应该可以正常工作,可能是您的 AccountID 不正确,或者两者的组合没有返回任何内容

create table #test(ip varchar(16))
insert #test values ('13.121.238.11')
insert #test values ('13.124.254.128')
insert #test values ('127.0.0.1')

select * from #test where ip like '%13.12%' 

【讨论】:

  • 两个作品的组合 SELECT * FROM XSP_AssetList_V WHERE AccountID = '5d6b1eab-1697-de11-a2d1-00505617006d' AND PrinterSerialNumber LIKE '%13%' 将显示记录,但这不显示记录 SELECT * FROM XSP_AssetList_V WHERE AccountID = '5d6b1eab-1697-de11-a2d1-00505617006d' AND PrinterSerialNumber LIKE '%13.12%'
猜你喜欢
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 2011-03-19
  • 1970-01-01
  • 2020-02-05
  • 2012-06-12
  • 2020-12-10
  • 1970-01-01
相关资源
最近更新 更多