【问题标题】:Parsing Database string in SQL Select command在 SQL Select 命令中解析数据库字符串
【发布时间】:2014-06-13 21:29:05
【问题描述】:

所以基本上我在数据库中插入了这个名为签名的列

ID = 1 价值 = 约翰、迈克尔、萨拉

ID = 2 价值 = 迈克、史蒂夫、约翰 . .

现在在 asp.net 中我不确定如何执行选择命令并知道值是否

约翰、迈克尔、萨拉

里面有“迈克尔”

【问题讨论】:

    标签: asp.net sql-server vb.net parsing select


    【解决方案1】:

    回答你的问题:

    CHARINDEX() 在较大的字符串中搜索子字符串,并返回匹配的位置,如果没有找到匹配则返回 0

    SELECT * FROM [Table] WHERE CHARINDEX(Signature, 'Michael') > 0
    

    或者

    您可以只在查询中使用通配符(在 IF、WHERE 或 ON 之后):

    SELECT * FROM [Table] WHERE Signature LIKE '%' + 'Michael' + '%'
    

    但实际上,您应该将此数据存储在单独的相关表中。

    【讨论】:

      【解决方案2】:

      没有。 不要

      为每个签名名称添加一个新表,并为每个签名者使用一行。这就是关系数据库的意义所在。

      1   John
      1   Michael
      1   Sara
      2   Mike
      2   Steve
      2   John
      

      或者更好的是,添加两张新表格 - 一张用于签署人,一张用于与您的初始表格之间的关系

      Signatories
      
      1  John
      2  Michael
      
      ItemSignatures
      ItemID SignatoryID
      1      1
      1      2
      2      1
      

      【讨论】:

        【解决方案3】:
        select *
        from Signature
        where value like '%Micheal%'
        

        【讨论】:

        • 发布答案时,请添加说明并说明您更改或添加的内容或其工作原理或其他内容。尽管您的答案可能是解决方案,但可能有些阅读此内容的人不理解它的含义或它的工作原理。
        猜你喜欢
        • 1970-01-01
        • 2016-07-30
        • 2014-10-15
        • 1970-01-01
        • 2019-07-07
        • 1970-01-01
        • 1970-01-01
        • 2020-11-11
        • 1970-01-01
        相关资源
        最近更新 更多