Doctrine 的 findBy*() 中的 LIKE 和 % 通配符

Posted

技术标签:

【中文标题】Doctrine 的 findBy*() 中的 LIKE 和 % 通配符【英文标题】:LIKE and % Wildcard in Doctrine's findBy*() 【发布时间】:2011-02-12 04:52:11 【问题描述】:

如何使用 Doctrine 的 findBy*() 方法编写以下 mysql 查询?:

SELECT column_name1, column_name2 FROM table_name
WHERE column_name3 LIKE '%search_key%';

例如,使用 Doctrine 从名为“ColumnName”(如下)的列中获取多行:

$users = Doctrine::getTable('User')->findByColumnName('active');

echo $users[0]->username;
echo $users[1]->username;

我试过了:

$search_key = 'some value';
$users = Doctrine::getTable('User')->findByColumnName('%$search_key%');

    echo $users[0]->username;
    echo $users[1]->username;

我没有收到任何错误,但没有显示任何内容。

任何帮助将不胜感激。提前致谢。

【问题讨论】:

【参考方案1】:
$users = Doctrine::getTable('User')->createQuery('u')
  ->where('column_name3 LIKE ?', '%search_key%')
  ->execute();

【讨论】:

@Coronatus,如果我有一个名为 $search_key 的变量包含要搜索的值,如何在查询中将 %search_key% 替换为 %$search_key%?

以上是关于Doctrine 的 findBy*() 中的 LIKE 和 % 通配符的主要内容,如果未能解决你的问题,请参考以下文章

多对多关系上的 Doctrine2 findBy()

Doctrine2 findBy 关系对象触发字符串转换错误

在findBy之后,Doctrine用急切的读取值重写关系

如何使用 Doctrine 查询 NOT NULL?

基于模型实例获取学说结果

如何忽略 Spring JPA findBy 存储库中的重音符号?