【问题标题】:How to find exact matching string from sql table?如何从 sql 表中找到完全匹配的字符串?
【发布时间】:2018-07-30 17:09:09
【问题描述】:

我有一张列出产品名称的表格。我有一些产品,例如 ZE_QE11_IDS_IDC-P01,ZE_QE19_EIDS_UPA-Z01。

我试过了

Select *  from products where name like 'ID'

以上列出了包括ZE_QE11_IDS_IDC-P01,ZE_QE19_EIDS_UPA-Z01在内的所有产品。 我只想列出表中的ID,怎么做

希望你明白了

问候

【问题讨论】:

  • 找到完全匹配很简单:其中 name = 'ID'
  • Select * from products where name = 'ID'
  • 在所有这些产品中,您的结果是哪个产品?
  • select name 而不是select *?
  • 我仍然不清楚你上面更新的问题

标签: sql sql-server where-clause


【解决方案1】:

在这种情况下,只需与ID 进行比较就不需要like 子句。当我们必须使用某种模式或匹配词搜索词时,需要使用 Like 子句。

Select *  from products where name = 'ID'

对于更新的问题:

尝试以下查询:您必须为要消除的其他字符应用逻辑,如下所示我已为字符 E 应用逻辑。

DECLARE @myText VARCHAR(50)='ZE_QE11_IDS_IDC-P01'
SELECT @myText where @myText like '%[^E]IDS%'

Output:ZE_QE11_IDS_IDC-P01

DECLARE @myText VARCHAR(50)='ZE_QE11_EIDS_IDC-P01'
SELECT @myText where @myText like '%[^E]IDS%'

Output:

你也可以试试SELECT @myText where @myText like '%[_]ID%',如果你想写_ID这样的词,而不是_EID

【讨论】:

  • 在这个问题上浏览了cmets之后,我觉得这应该是公认的答案
  • 如何在 select * from 中使用这个
  • SELECT * from YourTableName where columnname like '%[_]ID%'
【解决方案2】:
Select *  from products where name = 'ID';

【讨论】:

    猜你喜欢
    • 2013-05-21
    • 2016-02-20
    • 2016-02-12
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多