SQL含双引号字符串条件查询语法报错的排查与解决
解决全文搜索中双引号引发的SQL语法错误
刚在平台提交了我的第一个问题,折腾了好一会儿终于搞定了,把过程分享给大家:
问题情况
我跑这条SQL语句的时候:
SELECT * FROM PRODUCTS WHERE PRODUCT_NAME='14"" Television'
直接弹出报错:
全文搜索条件'"14" Television'中'Television'附近存在语法错误。
后来发现,数据库里PRODUCT_NAME的实际值是14" Television,但通过Request.Form("Product")拿前端传的值时,自动给双引号多加了一个,变成了14"" Television,这就把全文搜索的语法搞崩了。
一开始踩的坑
我试着用VB代码替换多余的双引号,但完全没效果:
Product = Product.Replace("""", chr(34))
最终可行的解决办法
后来换了字符串替换的方式,同时改用全文搜索的CONTAINS语法,问题就解决了:
先处理获取到的产品名称:
product = product.replace(""",""")
然后执行这条SQL查询:
SELECT * FROM PRODUCTS WHERE CONTAINS(PRODUCTS.*,'"14 Television"')
内容的提问来源于stack exchange,提问作者Mashraf
相关产品推荐
相关产品推荐

