我需要选择整列。 所以我的问题是如何获得整个专栏?
$query = "SELECT * ";
$query .= "FROM employees ";
$query .= "WHERE id=*";
$query .= "ORDER BY id ASC ";
我试过id = *但没有运气...... 我的目标是遍历所有ID,但有些可能会丢失,所以我想我把它们放在数字或关联数组中并使用foreach。如果有更好的方法,请分享。
编辑:
function get_all_ids()
{
global $connection;
$query = "SELECT * ";
$query .= "FROM employees ";
$query_result = mysql_query ( $query , $connection );
confirm_query($query_result);
$query_result_array = mysql_fetch_assoc($query_result);
return $query_result_array;
}
我用它来打印数组
$all_id = get_all_ids();
// preparing the table;
echo "<pre>";
print_r($table);
print_r($all_id);
echo "</pre>";
这是数组
Array
(
[id] => 1
[department_id] => 1
[name] => jordan
[EGN] => 9108121544
[email] => testEmail
[address] => testAddress
[country] => testCounty
)
答案 0 :(得分:3)
如果结果集中有多行,则需要继续提取直到检索到所有结果:
$q = mysql_query('SELECT * FROM `table`');
while (($row = mysql_fetch_assoc($q)) != FALSE)
{
// Do something with *one* result
}
mysql_free_result($q);
如果您想在一次抓取中检索所有ID,则可以执行以下操作:
$q = mysql_query('SELECT GROUP_CONCAT(`id`) AS `id_list` FROM `table`');
$row = mysql_fetch_assoc($q);
mysql_free_result($q);
$list_of_ids = explode(',', $row['id_list']);
警告: GROUP_CONCAT()
的结果限制通常为1024字节;意味着你的结果将被截断为大表。您可以使用第一个解决方案,也可以为当前连接增加group_concat_max_len
。
答案 1 :(得分:1)
如果您想要所有记录,那么您根本不需要WHERE
条件。
答案 2 :(得分:1)
也许你的意思很简单:
SELECT id
FROM employees
ORDER BY id ASC
如果这只给你一行,那么你只有一行或者你正在添加一个LIMIT 1
,或者你的PHP代码没有遍历所有结果,只是显示了第一行。请添加PHP代码。
答案 3 :(得分:0)
如果要选择单个列。然后不要使用“*”,给出用逗号分隔的列名的名称,并用“`”(勾号)引用以确保安全。
$query = "SELECT `id` "; //if you only want to get ids from the table
$query .= "FROM employees ";
$query .= "WHERE id=*";
$query .= "ORDER BY id ASC ";