为什么UPPER()在MySQL中不起作用?

a_m*_*m0d 4 mysql

我的SQL查询从具有可选排序字段的视图中选择一些列.基本上,我的视图将一些字段连接成一个地址字符串,所以我最终会得到类似的东西

123 Sesame Street Birdtown
Run Code Online (Sandbox Code Playgroud)

在地址栏中.我希望搜索不区分大小写(默认情况下不是这样),所以我尝试了这个:

SELECT * FROM BasicJobInfo WHERE UPPER(address) LIKE UPPER(searchString)
Run Code Online (Sandbox Code Playgroud)

searchString是我想要查找的地址.但是,MySQL似乎无法将地址转换为UpperCase - 我试过只是调用

SELECT UPPER(address) FROM BasicJobInfo
Run Code Online (Sandbox Code Playgroud)

但它根本不会改变这种情况.有什么想法可能是这样吗?
另外,关于我如何做一个不区分大小写的搜索的任何建议?
非常感谢.

Dav*_*ebb 14

根据字符串函数MySQL参考手册页面:

应用于二进制字符串(BINARY,VARBINARY,BLOB)时,UPPER()无效.

是否有可能你的ADDRESS列有一个BINARY,VARBINARYBLOB数据类型?

如果是,您将需要将二进制字符串转换为"普通"字符串.例如:

UPPER(CONVERT(ADDRESS USING latin1))
Run Code Online (Sandbox Code Playgroud)