首页 > 解决方案 > 在 SQLAnywhere 中使用“CONTAINS”函数转义星号

问题描述

我试图在 SQL Anywhere 中编写一个使用 CONTAINS 函数并搜索文字星号的查询。我已经使用了我能找到的所有转义序列,但没有一个有效,所有返回星号只是前缀搜索,所以它似乎没有从字面上解释它。我试过了

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 '%*%';

但是我更喜欢使用优化的 CONTAINS。

谢谢!

标签: sqlescapingcontainssqlanywhere

解决方案


推荐阅读