SQL'LIKE'语法

时间:2011-01-29 16:49:25

标签: sql mysql postgresql

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

在mysql LIKE中,它不区分大小写。 在postgresql LIKE中,它区分大小写,ILIKE不区分大小写。

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

PDO是否有解决方案?

2 个答案:

答案 0 :(得分:10)

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

LOWER(column_name) LIKE LOWER(pattern)
UPPER(column_name) LIKE UPPER(pattern)

或者您可以在SQL之外对pattern进行大小写/小写,只需使用:

LOWER(column_name) LIKE down_cased_pattern
UPPER(column_name) LIKE up_cased_pattern

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

答案 1 :(得分:3)

这是Database Abstraction Layer的工作。

PDO does not执行您正在寻找的内容,但如果您google for them,则会有一些PHP DAL。

  

PDO不提供数据库   抽象;它不会重写SQL或   模拟缺少的功能。你应该   如果使用完整的抽象层   你需要那个设施。