[英]SQL IF STATEMENT with PHP variable
我正在嘗試使用上述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的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)
");
我認為,最簡單的方法是純粹在PHP中進行字符串比較:
if ($reco == 'yes') {
$views = $views_value;
$average = $average_value;
}
else {
$views = $views_default;
$average = $average_default;
}
//escape your $views and $average strings, if necessary
$query = "INSERT INTO app_table (views, average) VALUES ('$views', '$average') ON DUPLICATE KEY UPDATE //whatever";
好吧,如果這是原理的證明,並且您仍然想在SQL方面做到這一點:
$query = "... IF('$reco' = 'yes', '$views' ...";
請注意$ reco周圍的報價。 因此,如果$ reco為'yes',則查詢將被解釋為... IF ('yes' = 'yes', 'some_value' ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.