首页 > 解决方案 > 带有通配符的 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%'

标签: sqlsql-servertsql

解决方案


因为带重音的字母不是没有重音的字母。你应该考虑大写字母。试试这个代码: select * from Test WHERE upper(FullName) COLLATE Latin1_general_CI_AI Like '%CAFE%' COLLATE Latin1_general_CI_AI


推荐阅读