在cakephp中查找首字母缩写

在cakephp中查找首字母缩写,php,cakephp,find,conditional-statements,Php,Cakephp,Find,Conditional Statements,在cakephp中,特定的find函数应该是什么样子的?我有这样的标准:我想通过一个给定的代码进行搜索,该代码由2个字母和5个数字组成。这两个字母是字段中前两个单词的首字母,数字表示与字段匹配 例如,我有code=PG35478,在此之后,我想找到在其姓名字段中的用户是Phillip George,其邮政编码为35478 因此: {为改进SQL注入保护而编辑} 假设您为了可读性将代码分解为以下组件:$first\u char、$second\u char、$postal 还假设数据库字段名为na

在cakephp中,特定的find函数应该是什么样子的?我有这样的标准:我想通过一个给定的代码进行搜索,该代码由2个字母和5个数字组成。这两个字母是字段中前两个单词的首字母,数字表示与字段匹配

例如,我有
code=PG35478
,在此之后,我想找到在其姓名字段中的用户是Phillip George,其邮政编码为35478

因此:

{为改进SQL注入保护而编辑}

假设您为了可读性将代码分解为以下组件:$first\u char、$second\u char、$postal

还假设数据库字段名为namefield和postalfield

那就用这个

$this->User->find('all', array('conditions' => array(
'namefield LIKE' => "'" . $first_char . "% " . $second_char . "%'",
'postalfield' => $postal
)));

第一个百分号后有一个空格

更新表格并添加一个额外的字段来保存这些代码是毫无疑问的吗?那么“复制品”呢,比如35478?ps中的Peter Gabriel。请始终提及您的确切CakePHP版本!在询问有关查询的问题时,了解您正在使用的DBMS和表类型也很有帮助。我同意,一个额外的字段保存这些代码将是最简单的。如果绝对有必要不使用此字段,则可以通过正则表达式进行搜索。比如说,如果您使用的是mysql,如果它确实是关于mysql的,并且如果稍微松散一点的匹配就可以了,那么我建议使用
,而不是正则表达式匹配,它可以利用索引@user2076809I也会说LIKE,但是LIKE可能足够精确,也可能不够精确,这取决于可以预期什么样的数据等等。这种语法风格很容易被SQL注入
LIKE
表达式也应该使用
key=>value
样式:
'fieldlike'=>'%term%'
$this->User->find('all', array('conditions' => array(
'namefield LIKE' => "'" . $first_char . "% " . $second_char . "%'",
'postalfield' => $postal
)));