上記のようなSQL条件で単一のクエリを作成しようとしています:
まず、必要なときにデータを更新できるようにする PHP 変数$reco
があるとしましょう。
mysql_query("
INSERT INTO app_table (views, average)
VALUES
(
IF($reco = 'yes', '$views', views),
IF($reco = 'yes', '$aver', average)
)
ON DUPLICATE KEY UPDATE
views = IF($reco = 'yes', $views, views),
average = IF($reco = 'yes', $aver, average)
");
問題は$reco
、クエリ内で希望どおりに機能しないことですが、テーブルの列は機能するので、PHP 変数で機能させるにはどうすればよいですか?
たとえば、テーブル内に reco がある場合、次のように機能します。
$reco in php 変数がテーブル内にないことに注意してください。
mysql_query("
INSERT INTO app_table (views, average)
VALUES
(
IF(reco = 'yes', '$views', views),
IF(reco = 'yes', '$aver', average)
)
ON DUPLICATE KEY UPDATE
views = IF(reco = 'yes', $views, views),
average = IF(reco = 'yes', $aver, average)
");