Mysql 将SQL查询转换为条令代码
如何将此SQL查询写入Doctrine 1.2查询Mysql 将SQL查询转换为条令代码,mysql,doctrine,Mysql,Doctrine,如何将此SQL查询写入Doctrine 1.2查询 SELECT * FROM homes WHERE published = 1 AND ( LOWER(country) LIKE '$search%' OR LOWER(city) LIKE '$search%' OR LOWER(area) LIKE '$search%' ) 编辑 这是我的实际查询。上面的例子是一个简化的版本。我现在只想知道,我如何
SELECT * FROM homes
WHERE published = 1
AND
(
LOWER(country) LIKE '$search%'
OR
LOWER(city) LIKE '$search%'
OR
LOWER(area) LIKE '$search%'
)
编辑
这是我的实际查询。上面的例子是一个简化的版本。我现在只想知道,我如何将多个位置组合在一起
Doctrine_Query::create()
->select('h.*,c.*')
->from('Homes h')
->where('h.published = ?',1)
->addWhere('LOWER(c.printable_name) LIKE ?', $search . "%")
->orWhere('LOWER(h.city) LIKE ?', $search . "%")
->orWhere('LOWER(h.area) LIKE ?', $search. "%")
->orWhere('LOWER(h.name) LIKE ?', $search. "%")
->leftJoin('h.Countries c');
好的,有效的脚本是:
Doctrine_Query::create()
->select('h.*,c.*')
->from('Homes h')
->where('h.published = ?',1)
->andWhere('LOWER(c.printable_name) LIKE ? OR LOWER(h.city) LIKE ? OR LOWER(h.area) LIKE ? OR LOWER(h.name) LIKE ?', array($search . "%",$search . "%",$search . "%",$search . "%"))
->leftJoin('h.Countries c');
我不知道这是否是编写它的最佳方式。为什么需要显式降低字段?对于默认排序规则,类似mysql的ci不区分大小写。您尝试过什么?错误消息是什么?你知道LIKE不区分大小写吗?我使用的是UTF-8和UTF_general_ci,没有更低的大小写。我没有得到不区分大小写的结果。他们对单引号搜索文本执行上述查询也很好eample$string=testin'g