Избегание звездочек с помощью функции «СОДЕРЖИТ» в SQLAnywhere - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь написать запрос в SQL В любом месте, которое использует функцию CONTAINS и ищет буквальную звездочку. Я использовал все escape-последовательности, которые мог найти, и ни одна из них не работает, все возвращают, что звездочка - это только поиск по префиксу, поэтому, похоже, она не интерпретирует ее буквально. Я пробовал

SELECT * FROM TransactionJournalDetail CONTAINS( TransactionJournalDetail.TLI_ReceiptAlias, '\*');

SELECT * FROM TransactionJournalDetail CONTAINS( TransactionJournalDetail.TLI_ReceiptAlias, '\\*');

-и-

SELECT * FROM TransactionJournalDetail CONTAINS( TransactionJournalDetail.TLI_ReceiptAlias, '\x2A');

-и-

SELECT * FROM TransactionJournalDetail CONTAINS( TransactionJournalDetail.TLI_ReceiptAlias, '[*]');

, который, как я думал, будет работать в соответствии с документацией Я мог бы использовать шестнадцатеричное значение, но оно не сработало. Любые идеи о том, как это сделать на SQL Anywhere, были бы великолепны.

Я знаю, что могу использовать:

SELECT * FROM TransactionJournalDetail WHERE TransactionJournalDetail.TLI_ReceiptAlias LIKE '%*%';

, однако я бы предпочел использовать оптимизированные СОДЕРЖИТ.

Спасибо!

...