我在perl DBI中有下面的查询-
$query = $dbh->prepare(
"SELECT * FROM domain WHERE domainname = ? AND servicename = ?");
$query->execute( $domain, $service );如果服务名可以是不区分大小写的,例如,如果我现有的服务名是“storage”,那么它也应该获取“存储”的结果。
我试过下面的代码-
query = $dbh->prepare(
"SELECT * FROM domain WHERE domainname = ? AND servicename = lower(?)");
$query->execute( $domain, $service );但它并不适用于servicename =“存储”。
有我错过的指针吗?
发布于 2015-07-16 05:50:43
您还应该对列值使用lower函数:
query = $dbh->prepare(
"SELECT * FROM domain WHERE domainname = ? AND lower(servicename) = lower(?)");
$query->execute( $domain, $service );发布于 2015-07-16 08:13:06
您可以使用Mysql的ilike函数,它不区分大小写。
query = $dbh->prepare(
"SELECT * FROM domain WHERE domainname = ? AND servicename = ilike(?)"
);$query->execute( $domain,$service );
ilike使比较大小写不敏感。
https://stackoverflow.com/questions/31446137
复制相似问题