sql - 带有通配符的 SQL Server 2019 LIKE 脚本在 MySQL 正常时不起作用
问题描述
我将 SQL Server 2019 与图表一起使用。我的脚本仅返回 Id9,而 MySQL 下的相同脚本返回 ID4、8、9(这是预期结果)。我不知道为什么用作前缀的 '%' 在 SQL Server 上不起作用。
这是脚本:
CREATE TABLE Test([Id] int IDENTITY(1,1) NOT NULL,
[FullName] nvarchar(128) NULL,
CONSTRAINT [PK_Test_Id] PRIMARY KEY CLUSTERED (Id ASC));
INSERT INTO Test (FullName) VALUES
(N'F''Sheree Jones II' ),
(N'Cybèle' ),
(N'T''Junior' ),
(N'Urane Of Watson Lake' ),
(N'J''Sirène De Dan Jourdain' ),
(N'Goodson des loups de l''antarctique'),
(N'F''Sheree Jones Of Dawson City' ),
(N'Pénélope Of Watson Lake' ),
(N'Liubov''s Siren' ),
(N'Siréna' );
select * from Test where FullName like '%siren%'
解决方案
因为带重音的字母不是没有重音的字母。你应该考虑大写字母。试试这个代码:
select * from Test WHERE upper(FullName) COLLATE Latin1_general_CI_AI Like '%CAFE%' COLLATE Latin1_general_CI_AI
推荐阅读
- fork - fork() 移动到 main() 的开头
- sql - 在触发器中引发错误以返回插入行列
- visual-studio-code - 我可以扩展 vscode 检测到的默认 URI 方案吗?
- django - 在 Django 中向用户添加组
- javascript - javascript,如何更改数组中元素的时间戳?
- windows - 用于操作系统内部请求的类似提琴手的程序
- kubernetes - Kubernetes 负载均衡器类型未响应外部 IP 地址
- python - 当应该影响 X 的变量发生变化时,变量 X 不更新
- javascript - 发布请求后重新加载 HTML
- formula - NetSuite 保存的搜索条件公式 {activity.assigned} = 特定员工