【问题标题】:How to use SQL "LIKE" operator by using wildcard?如何使用通配符使用 SQL “LIKE” 运算符?
【发布时间】:2021-08-30 05:10:29
【问题描述】:

我目前无法在表“%2”或“%20”中查找包含以下数据的所有行。

例如:'Susan rides%2bike across town'

SELECT * FROM [my_table] WHERE [description] LIKE % %2 %

我知道这个例子行不通,但是有没有办法使用 SQL 的“LIKE”运算符搜索这些值“%2”或“%20”?因为我需要找到它们并用空格替换它们。

【问题讨论】:

  • 你是不是在LIKE '%[%]2%'之后?
  • 嗨@Larnu,我将快速创建一个测试表并快速测试这个理论。将尽快恢复,谢谢。
  • 另一种选择是使用ESCAPE: LIKE '%\%2%' ESCAPE '\'

标签: sql sql-server tsql sql-like


【解决方案1】:
SELECT * FROM my_table WHERE description LIKE '%\%2%' ESCAPE '\';

对于LIKE 关键字,您可以在之后指定ESCAPE 序列。在此示例中,前导反斜杠转义了 %,因此它将被解释为文字值。

在文档中了解更多信息:https://docs.microsoft.com/en-gb/sql/t-sql/language-elements/like-transact-sql?view=sql-server-ver15

你可以在这个SQL Fiddle中测试它。

【讨论】:

    【解决方案2】:

    谢谢你。

    SELECT * FROM [my_table] WHERE [description] LIKE '%[%]2%'
    

    【讨论】:

      【解决方案3】:

      上述问题的解决方案是

      select * from my_table where description like'%[%]2%'
      

      【讨论】:

      • 请不要在答案中添加语句,例如要求OP将答案标记为解决方案;这只是噪音。如果 OP 认为答案回答了问题,他们会将其标记为这样。但是,提醒 cmets 中的 OP 并没有错以便未来的读者知道答案是有帮助的。”虽然也将“谢谢”评论标记为对话,然后一个 mod 将清理两个 cmets。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多