【问题标题】:MySQL - IF statement to hide a columnMySQL - IF 语句隐藏列
【发布时间】:2017-01-13 22:33:23
【问题描述】:

我有一个使用单选按钮的表单,这个按钮决定它是否显示一条数据:

<input type="radio" name="IncludeData" value="1" />Yes
<input type="radio" name="IncludeData" value="0" />No

是 = 1,否 = 0。

然后我使用这个查询来调用数据:

$IncludeData = $_POST['IncludeData'];
$sql = "SELECT data1, data2, data3, IF($IncludeData='0',Null,data4), data4, data5 FROM Database ORDER BY data1 asc";

我已尝试遵循此问题的答案:MYSQL hide field data if value in another field is set

但是,无论我在单选按钮上选择什么,它似乎总是保留数据。任何帮助将不胜感激。

这是我从中获取数据的地方:

<td>
Sort table on =
<select name="Sort">
<option value="data1" selected="selected">Example1</option>
<option value="data2">Example2</option>
<option value="data3">Example3</option>
<option value="data4">Example4</option>
<option value="data5">Example5</option>
</select>
</td>

【问题讨论】:

  • 在那之后你的字段中也有data4。所以当你选择No时,你会得到data1, data2, data3, NULL, data4, data5,当你选择Yes时,你会得到data1, data2, data3, data4, data4, data5
  • 也许你的意思是作为这个IF的别名,所以它应该是IF(...) AS data4
  • 一开始我也这么认为@Barmar。但是当我从 IF 语句之后删除 data4 时,什么都没有显示。即使我选择了是...
  • 你如何显示这个字段?您是否为IF() 提供了别名,以便您可以通过名称引用它?
  • 您需要发布更多代码,以便我们了解您是如何访问查询结果的。

标签: php mysql


【解决方案1】:

这样的事情呢?

$IncludeData = $_POST['IncludeData'] ? 'data4, ' : '';
$sql = "SELECT data1, data2, data3, $IncludeData data5 FROM Table ORDER BY data1 ASC";

【讨论】:

  • 你打败了我
  • 对不起,没有。 $IncludeData 与字段无关,它仅与 0 和 1 相关联。所以是包含数据,或者不包含数据。
  • 我知道,使用该代码,如果 $includeData 为 1,将包含 data4 列,如果 $includeData 为 0,则不会包含 data4...
  • 对不起!第一次读错了!这就像做梦一样。非常感谢
猜你喜欢
  • 2020-04-07
  • 2017-02-05
  • 2014-10-16
  • 2014-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
相关资源
最近更新 更多