php+MySQLでプログラムを書いているのですが、長いSQL文・間にif等が入るSQLを書くときにどう書いたら読みやすいかイマイチよくわかりません。
今は、下のように書いてるんですが、みなさんはどうされてますか?
あと、SQLは大文字・小文字どちらで書きますか?
テーブル名を大文字小文字を区別する設定になっているので、テーブル名やカラム名を大文字、それ以外を小文字で書いています。(読みやすいかと思って)
lang
1//条件が何もない時 下の書き方と統一したほうがいいか迷う 2$sql = "select " 3 ." COL1 " 4 ." COL2 " 5 ." from TABLE_NAME " 6 ." where 1=1 " 7 ." and COL1 = 1 " 8 ." order by COL2 desc ";
lang
1//if等が間にあるとき 2//「$sql.=」を何回も書くのが面倒ですが、一部コメント化したりするときに楽。セミコロン気にしなくていい 3$sql = ""; 4$sql .= " select "; 5$sql .= " COL1 "; 6$sql .= " ,COL2 "; 7$sql .= " from TABLE_NAME "; 8$sql .= " where 1=1 "; 9$sql .= is_null($col1) ? " and COL1 is null " : " and COL1 is not null "; 10if (is_null($col1) { //1行で収まらないとき 11 $sql .= " and COL1 is null "; 12} else { 13 $sql .= " and COL1 is not null "; 14} 15$sql .= " order by COL2 asc ";
lang
1select COL1,COL2 from TABLE_NAME where 1=1 2--and COL1 is null 3--and COL1 is not null 4order by COL2 asc 5 6select COL1,COL2 from TABLE_NAME where 1=1 and COL1 = 1 order by COL2 desc
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/03/15 10:51