MySQLでカラムを結合して検索する。あとDoctrineのQueryBuilderでの書き方。

id last_name first_name
1 田中 太郎
2 山田 花子
3 鈴木 一郎

氏名を別々のカラムにしているときに、それらを結合して検索したい(例えば 山田花子 とかで検索したい)とき。

SELECT * FROM user WHERE CONCAT(last_name, first_name) like "山田花子";

はい、 CONCAT を使えばいいですね。

DoctrineのQueryBuilderの場合も悩まず素直に

<?php
// ...
->where('concat(user.lastName, user.firstName) like :userName')
->setParameter('userName', '山田花子')
// ...

でいける。