WHERE句でキーとなるカラムに値が無ければ別のカラムの値を採用する

SELECTするとき、WHERE句で特定の日付の値を条件として使いたいが、その値が存在しなかったり期待するものと違ったりした時、別の日付をキーにする。

例えば以下は、base_dateカラムの日付をキーにしたいが、base_dateの値がNULLだったりMySQLのデフォルト値(0000-00-00)だったりすると、結果がおかしくなってしまう。

なので、このbase_dateの値が期待するものと違えば、代替として、entryの値を使用したい。

CASEを使って対応。

 

NULLだけを回避するのであれば、COALESCEを使えばいいっぽい。試してないが書くならこんな感じかしら。

 

参考サイト)

 

EC-CUBE2系+PHP5.4でファイル管理を開くとエラーになる場合の対処

エラーの発生条件

  • EC-CUBE2.13.2
  • PHP5.4

管理画面で、「コンテンツ管理」→「ファイル管理」を開くと、下記のエラーがでる。

 

どうやらPHP5.4から、関数のパラメータにスーパーグローバル変数と同じ名前の変数を使用することができなくなったことが原因らしい。

「data/class/pages/admin/contents/LC_Page_Admin_Contents_FileManager.php」を修正して対処する。

 

(参考サイト:https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=10792&forum=9&post_id=50986