mysql 将SQL LIKE运算符与UPPER()语法配合使用

lawou6xi  于 2022-12-03  发布在  Mysql
关注(0)|答案(2)|浏览(240)

我尝试在查询中使用LIKE运算符,如下所示:

mysql> select cat_title from category where cat_title like '%Indian%Restaurant%';
+--------------------+
| cat_title          |
+--------------------+
| Indian_Restaurants |
+--------------------+
1 row in set (2.59 sec)

但是,由于我想执行不区分大小写的搜索,因此我尝试:

mysql> select cat_title from category where UPPER(cat_title) like UPPER('%Indian%Restaurant%');
Empty set (2.83 sec)

为什么第二个查询不起作用?

xpszyzbs

xpszyzbs1#

cat_title列上的排序规则很可能不区分大小写。使用

... cat_title LIKE '%Indian%Restaurant%' COLLATE utf8_bin

另请参阅

ajsxfq5m

ajsxfq5m2#

不确定您的问题是什么。UPPER函数在'like'运算符之前不起作用。如果要进行不区分大小写的搜索,请只使用运算符'like',因为它不区分大小写。
另一方面,如果要进行区分大小写的搜索,可以尝试使用

cat_title COLLATE Latin1_General_BIN LIKE '%Indian%Restaurant%'

相关问题