Как искать двойные кавычки в полнотекстовом поиске в SQL
У меня есть двойные кавычки в моем ключевом слове. Как я могу найти это в моем полнотекстовом поисковом запросе. У меня есть этот запрос
SELECT top 10 K.[KEY], 10, K.[RANK]
FROM CONTAINSTABLE(ProductKeywords, Keywords, '("19*") AND ( "<Cat>5" OR "<Cat>30" OR "<Cat>398" ) AND NOT "<Blocked>"' ) AS k
Это работает хорошо, но когда у меня есть двойные кавычки в моем ключевом слове, как
SELECT top 10 K.[KEY], 10, K.[RANK]
FROM CONTAINSTABLE(ProductKeywords, Keywords, '("19"*") AND ( "<Cat>5" OR "<Cat>30" OR "<Cat>398" ) AND NOT "<Blocked>"' ) AS k
это дает эту ошибку
Msg 7630, Level 15, State 3, Line 1
Syntax error near '*' in the full-text search condition '("19"*") AND ( "<Cat>5" OR "<Cat>30" OR "<Cat>398" ) AND NOT "<Blocked>"'.
2 ответа
Чтобы избежать двойных кавычек, просто удвойте их, как, например,
SELECT * FROM Tbl WHERE Contains(name, '""quoted""')
Как избежать двойных кавычек внутри полнотекстовой функции SQL "содержит"?
SELECT TOP 10
K.[KEY]
, 10
, K.[RANK]
FROM
CONTAINSTABLE(ProductKeywords, Keywords, '("19*") AND ( "<Cat>5" OR "<Cat>30" OR "<Cat>398" ) AND NOT "<Blocked>"')
AND Keywords LIKE '19"%'
AS k