3

Zend フレームワークを使用しています。大文字と小文字を区別せずにデータベースからレコードを取得したい。

これは私の人物テーブルです:

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

次の文字列を使用して、WHERE 句で「職業」を使用して上記の表のレコードを検索すると、常にレコード番号 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 にあるかどうかを知りたいです。

ありがとう

4

1 に答える 1

7

試す

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

これにより、列の値と検索値が大文字になります

于 2010-02-03T08:06:56.973 に答える