トップ » サービス » 技術情報 » symfony » データベース・SQL(Criteria) » 全角カナorder by 「ヴ」を「ウ」と「エ」の間に並べ替える
symfony

全角カナorder by 「ヴ」を「ウ」と「エ」の間に並べ替える - 記述日2008/3/18 - 長谷部


SELECT * FROM maker_mst ORDER BY maker_kana ASC;

では ヴが一番下になってしまう。

SELECT *, REPLACE(maker_kana, 'ヴ', 'ウ一') AS replace_kana FROM maker_mst ORDER BY replace_kana ASC;

とすればウとエの間になる。
漢字の「一」に変換したが「ー」以降の文字であればなんでもよい。
(UTFの全角カナの範囲 「ァ」E382A1 ~ 「ヶ」E383B6 それと 「ー」E383BC とする)


symfonyのpropelでは

addSelectColumn()
addAscendingOrderByColumn()

のメソッドを使えば可能。


例)MakerMstPeer.php 等で criteria生成時に

parent::addSelectColumns($objCriteria);

switch ($arrSearch['sort_column'])
{
    case "maker_name_kana_asc":
        $objCriteria->addSelectColumn("REPLACE(".MakerMstPeer::MAKER_NAME_KANA.", 'ヴ','ウ一') AS replace_kana");
        $objCriteria->addAscendingOrderByColumn('replace_kana');
        break;
}


symfony 最新記事

↑Pagetop