簡體   English   中英

帶PHP變量的SQL IF語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM