我的搜索查询有问题 我正在使用我的数据包含名称和信息,这些信息具有各种形式的撇号(HTML 编码和实际)。因此,例如,我想要一个替代方案:
SELECT * FROM Customers WHERE REPLACE(LastName,'''','')
LIKE Replace('O''Brien,'''','')
这只是一个例子,我想要的是一种方式,如果有人键入 OBrien 或 O'Brien,这仍然有效,我需要替换角色的三个版本,并且数据是来自源且无法更改 - 可以做什么到一个查询以允许这种搜索工作。
我有名称以这种方式工作的项目,目前有许多嵌套的 REPLACE 函数,并且似乎找不到可以以这种方式工作的东西,这更有效。
如果有帮助,我正在使用带有 ASP 的 MS SQL 2000。
编辑
这是需要匹配 O'Brien 或 OBrien 的查询,此查询执行此操作但效率太低 - 它由另一个用于匹配项目名称和名字(可选)的连接。
SELECT * FROM Customers
WHERE
REPLACE(REPLACE(REPLACE(LastName,''',''),''',''),'''','')
LIKE
REPLACE(REPLACE(REPLACE('%O'Brien%',''',''),''',''),'''','')