Mysql 当查询返回多行时,返回第一行的单个值
下表是我的数据库选项卡Mysql 当查询返回多行时,返回第一行的单个值,mysql,sql,codeigniter,Mysql,Sql,Codeigniter,下表是我的数据库选项卡问题 当我使用此函数传递$ID=2时 function getFirstID($ID) { $checkQ = "SELECT * FROM tabel WHERE quiz_id = '$ID"; $query = $this->db->query($checkQ); if ($query->num_rows() > 0) { return $query->resu
问题
当我使用此函数传递$ID=2
时
function getFirstID($ID) {
$checkQ = "SELECT * FROM tabel WHERE quiz_id = '$ID";
$query = $this->db->query($checkQ);
if ($query->num_rows() > 0) {
return $query->result();
} else {
return NULL;
}
}
结果是,
我想返回结果中第一行的ID
。所以输出应该是4
为了获得预期的输出,我应该在函数中做哪些修改
SELECT `ID` FROM tabel WHERE quiz_id = '$ID ORDER BY `ID` LIMIT 1
请尝试此查询。在CodeIgniter中
$this->db->select('ID');
$this->db->from('tabel');
$this->db->where('quiz_id',$ID);
$this->db->order_by('ID');
$q=$this->db->get();
if ($q->num_rows() > 0) {
return $q->row(); # Returns single row
} else {
return NULL;
}
尝试此查询您可以在本例中使用
ROWNUM
、LIMIT
、TOP
、PERCENT
1.)处理行号:
SELECT columnNames FROM Table_name
WHERE ROWNUM <= number;
3.)可以从TOP
SELECT TOP 5 * FROM Table_name;
4.)可以从以下结果的所有数量中选择百分比:
SELECT TOP 25 PERCENT * FROM Table_name;
第四个与其他人相比不是更好,但我们可以使用它
关于你的情况,我们可以假设如下四个原因:
SELECT * FROM tabel WHERE quiz_id = '$ID AND ROWNUM <= 1;
或
或
请提供预期的输出。为了更好地理解..您的问题不清楚,请阅读当测验id更改1或2时
的意思@user3002114:不够…当您通过2时,num\u rows
是3?您的表中只有2行。阅读如何提问并提出更好的问题这是如何解决你的问题的?您的输出表明,$ID=2
需要两行,而且如果您已经按ID
进行筛选,则按ID
排序不会产生任何结果
SELECT * FROM tabel WHERE quiz_id = '$ID AND ROWNUM <= 1;
SELECT * FROM tabel WHERE quiz_id = '$ID AND LIMIT 1;
SELECT TOP 1 * FROM tabel WHERE quiz_id = '$ID;
SELECT 50 PERCENT * FROM tabel WHERE quiz_id = '$ID;