SQL'LIKE'语法

dan*_*car 8 mysql sql postgresql

我正在编写一个需要同时处理mysql和postgresql的应用程序.我必须用来like比较一些值.

在mysql中LIKE它不区分大小写.在postgresql中,LIKE它区分大小写并且ILIKE不区分大小写.

在匹配必须不区分大小写的情况下,制作可用于两者的可靠查询的最佳方法是什么?

PDO有解决方案吗?

mu *_*ort 11

确保不区分大小写LIKE的最简单方法是使用以下方法之一:

LOWER(column_name) LIKE LOWER(pattern)
UPPER(column_name) LIKE UPPER(pattern)
Run Code Online (Sandbox Code Playgroud)

或者您可以pattern在SQL外部使用大写/小写,只需使用:

LOWER(column_name) LIKE down_cased_pattern
UPPER(column_name) LIKE up_cased_pattern
Run Code Online (Sandbox Code Playgroud)

我倾向于使用LOWER习惯,因为小写更容易阅读,因此更容易调试.

  • "问:所有脚本都有大写和小写吗?答:不,事实上,大多数脚本都没有案例." (来自Unicode常见问题解答)在一般情况下,您不能指望小写字符具有大写版本.您也不能指望小写字符映射到单个大写字符 - 其中一些是UPPER()到两个字符.所以lower()更安全,但只是一点点.难道你不喜欢生活在Unicode世界中吗? (4认同)