Zend:如何在不考虑区分大小写的情况下从数据库中获取记录?

时间:2010-02-03 07:36:25

标签: php mysql zend-framework case-sensitive

我正在使用Zend Framework。我想从数据库中获取记录而不考虑区分大小写。

这是我的人员表:

Id|Name  |Gender|Occupation
-----------------------------------
1 |Naveed|Male  |Software Engineer
-----------------------------------
2 |Ali   |Male  |Software Developer

现在如果我使用以下字符串在where子句中使用'Occupation'搜索上表中的记录,它应该总是返回记录号1(Naveed的记录)。

Software Engineer
software engineer
SoFtwarE EngIneeR
SOFTWARE ENGINEER

我正在使用以下方式从Zend中的数据库中获取记录。

$occupation = "Software Engineer";
$table = new Model_Person_DbTable();
$select = $table->select();
$select->where( 'Occupation = ?', $occupation ); 
$rows = $table->fetchAll( $select );

现在如何为我的场景更改上面的zend代码?

我可以创建一个逻辑来忽略区分大小写的外部数据库查询,但我想知道如果Zend / SQL中有任何方法可以在查询中处理这个问题。

由于

1 个答案:

答案 0 :(得分:7)

尝试

$select->where( 'upper(Occupation) = upper(?)', $occupation ); 

这将使列中的值和搜索值为大写