Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 当查询返回多行时,返回第一行的单个值_Mysql_Sql_Codeigniter - Fatal编程技术网

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;