0
我需要這樣的查詢:Symfony2的Doctrine2查詢與數組參數
SELECT p.pid, p.url FROM products as p WHERE url_crc IN (FNV_64("http://url1.com/"),FNV_64("http://url2.com/"))
我需要使用FNV_64哈希函數爲每個數組變量。 在將變量傳遞給查詢構建器之前,我無法做出散列。這個哈希函數只能作爲MySQL擴展使用。
我如何使這個使用Symfony2? 例如,使用:
$qb = $em->createQueryBuilder();
$query = $qb->select('p.pid')
->from('SRC\MainBundle\Entity\Product', 'p')
->where('p.url_crc IN (FNV_64(:urls))') // error HERE
->setParameter('urls', $hashes_array)
->getQuery();
不行。只有這樣,我可以在此的是:
$query = $em->createNativeQuery('SELECT p.pid, p.url FROM products as p
WHERE url_crc IN (' . join(',', $tmp_array) . ')', $rsm);
凡tmp_array看起來是這樣的:
Array
(
[0] => FNV_64("http://url1.com/")
[1] => FNV_64("http://url2.com/")
)
有沒有更好的辦法?