首页 > 解决方案 > 搜索字符串并在表中插入值

问题描述

我有以下记录的表格。以下产品描述由用户在前端(asp.net)的文本框中给出。产品描述将带有单引号或双引号。我想插入表格中。所以我们怎么能检查表中的输入和插入值中是否存在单引号或双引号。请帮助。

字符串 s=教科书

CREATE TABLE Product_Details(Product_Description varchar(50))

    Required Output

    Product_Description
    -------------------
    STORE('COVERED)
    STEEL("ROOFED)

以上两个字符串的插入语句会有所不同吗?

标签: postgresqlinsertpostgresql-9.2

解决方案


我不确定您到底在寻找什么。您应该能够毫无问题地存储带引号或双引号的文本(注意,我在 Postgresql 9.4 上进行测试,没有 9.2)。问题有时是用单引号创建文本。在这些情况下,通常会有两个这样insert into product_details values ('STORE(''COVERED)') 的单引号。双引号 (") 应该不是问题。您可以使用语法E'STORE(\'COVERED)'代替两个引号。有时更具可读性。

如果你只是想检查输入中是否有'或"",这个检查很方便:

select length(replace(product_description,'''',''))!=length(product_description),   
length(replace(product_description,'"',''))!=length(product_description)

它返回真/假列,告诉第一列中的字符串中是否存在单引号,而后一列中是否存在双引号。

要删除字符串中的引号,您可以执行以下操作:
select replace(replace(product_description,'"',''),'''','')

最好的问候,
Bjarni


推荐阅读