[英]SQL query to get all records based on a certain column value
我得到了下表:
+---------+--------+---------+--------------+
| ID | Data 1 |Customer | Alternative |
+---------+--------+---------+--------------+
| 1 |1abc | 1 |1 |
+---------+--------+---------+--------------+
| 2 |2abc | 1 |1 |
+---------+--------+---------+--------------+
| 3 |ae12 | 1 |2 |
+---------+--------+---------+--------------+
| 4 |ad31 | 1 |2 |
+---------+--------+---------+--------------+
| ... |... | ... |... |
+---------+--------+---------+--------------+
我需要以下信息:
在这里,我们有2个选择。 因此,我将用替代方案1和替代方案2填充选择框。然后,当用户选择一个替代方案时,我需要根据该替代方案在JSON数组中编写所有记录。
例如:
用户选择替代项1
[1;1abc;1;1],[2;2abc;1;1]
或用户选择备选方案2
[3;ae12;1;2],[4;ad31;1;2]
我试过了
$result = mysql_query("SELECT DISTINCT Alternative from $table)
但这仅返回1和2,而不返回整个记录。
您无法通过单个查询来执行此操作。 使用两个查询。 一个用于获取不同的选择,而另一个用于获取每个选择的选项。
$result = mysql_query("SELECT DISTINCT Alternative FROM $table");
while ( $row = mysql_fetch_array( $result ) ) {
$alt = $row['Alternative'];
$res2 = mysql_query("SELECT * FROM $table WHERE Alternative = '$alt'");
while( $row2 = mysql_fetch_array( $res2 ) ) {
//put your HTML here
}
}
这可以通过相当简单的方式完成。
$query = "SELECT DISTINCT(alternative), id, data_1, customer
FROM table"
$result_set = mysql_query($query,$connection);
$count = mysql_num_rows($result_set);
如果您只在寻找特定ID,客户或data_1的替代项,则还可以在查询中添加WHERE子句。
根据我对所需输出的理解; 您可以使用以下查询:
SELECT GROUP_CONCAT( "[", ID, ";", Data, ";", "Customer", ";", Alternative, "]" )
FROM test
GROUP BY alternative
您要计算备选方案,因此请使用count(distinct)
:
SELECT COUNT(DISTINCT Alternative) as NumAlternatives
FROM $table;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.