複数のフィールドと異なる区切り文字を使用してMySQL連結を動的に構築しています。現在連結されているフィールドが空白またはnullの場合、区切り記号を削除したいと思います。複数の区切り文字を使用したMySQLの複数連結 - CONCAT_WS
$concat_string = "CONCAT_WS('".$infix_array[0]."'," . $concat_fields_array[0] . "," . $concat_fields_array[1] . ")";
$i = 0;
foreach($concat_fields_array as $concat_field){
if($i >= 2){
$concat_string = "CONCAT_WS('".$infix_array[$i-1]."'," . $concat_string . "," . $concat_field . ")";
}
$i++;
}
これは、ネストされたようなCONCAT_WS構築します。NULLIF(フィールド1、 '')のようなNULLIFのフィールドを包むだろうが余分に挿入辞を取り除く
CONCAT_WS(', ',CONCAT_WS(' - ',CONCAT_WS(':',CONCAT_WS(' ',field1,field2),field3),field4),field5)
を?
これを達成するためのより高速な機能はありますか?