在MySql查询中,我们如何在两个单独的字段中分配ORDER BY?

在MySql查询中,我们如何在两个单独的字段中分配ORDER BY?,mysql,sql,Mysql,Sql,我如何在mysql中为两个单独的字段设置order by 代码 错误消息: Mysql错误:您的SQL语法有错误;请查看与您的My-SQL server版本对应的手册,以了解第4行中使用接近“…ORDER BY ques­ORDER,…opt­ORDER ASC”的正确语法 $m_test_id有问题;它可能是空的,并导致SQL语法出现问题。考虑使用准备好的语句: $sql = 'SELECT q.question_id, a.answer_id, q.question_name, a.opti

我如何在mysql中为两个单独的字段设置order by

代码

错误消息:

Mysql错误:您的SQL语法有错误;请查看与您的My-SQL server版本对应的手册,以了解第4行中使用接近“…ORDER BY ques­ORDER,…opt­ORDER ASC”的正确语法


$m_test_id有问题;它可能是空的,并导致SQL语法出现问题。考虑使用准备好的语句:

$sql = 'SELECT q.question_id, a.answer_id, q.question_name, a.option_name, q.display_order AS 
    ques_order, a.correct, a.display_order AS opt_order 
    FROM questions q 
    JOIN answers a ON a.question_id = q.question_id 
    WHERE test_id = :test
    ORDER BY ques_order, opt_order ASC'; 

$stmt = $db->prepare($sql);
$stmt->execute(array(':test' => $m_test_id));
除此之外,您应该首先了解为什么$m_test_id是空的


如果您不使用或可以使用,请注意它已弃用,不应再使用。

$m_test_id有问题;它可能是空的,并导致SQL语法出现问题。考虑使用准备好的语句:

$sql = 'SELECT q.question_id, a.answer_id, q.question_name, a.option_name, q.display_order AS 
    ques_order, a.correct, a.display_order AS opt_order 
    FROM questions q 
    JOIN answers a ON a.question_id = q.question_id 
    WHERE test_id = :test
    ORDER BY ques_order, opt_order ASC'; 

$stmt = $db->prepare($sql);
$stmt->execute(array(':test' => $m_test_id));
除此之外,您应该首先了解为什么$m_test_id是空的


如果您不使用或可以使用,但请注意,它已弃用,不应再使用。

我们可以了解表的结构和完整查询吗?您是否用分号终止字符串;?@Adrien Lacroix$sql='选择q.question\u id,a.answer\u id,q.question\u name,a.option\u name,q.display\u order AS ques\u order,a.correct,a.display\u order AS opt\u order FROM questions q JOIN answers a.question\u id=q.question\u id WHERE test\u id='。$m\u test\u id.'order BY question,opt\u order ASC'Voitcus是的,我使用结束行;错误部分就在order by子句之前…检查变量$m_test_id。是否有任何值我们可以了解表的结构和完整的查询吗?是否用分号终止字符串;?@Adrien Lacroix$sql='选择q.question\u id,a.answer\u id,q.question\u name,a.option\u name,q.display\u order AS ques\u order,a.correct,a.display\u order AS opt\u order FROM questions q JOIN answers a.question\u id=q.question\u id WHERE test\u id='。$m\u test\u id.'order BY question,opt\u order ASC'Voitcus是的,我使用结束行;错误部分就在ORDERBY子句之前…检查变量$m_test_id。是否有任何值我删除了我的答案,因为我们的答案更好+1我删除了我的答案,因为我们的答案更好+1.
$sql = 'SELECT q.question_id, a.answer_id, q.question_name, a.option_name, q.display_order AS 
    ques_order, a.correct, a.display_order AS opt_order 
    FROM questions q 
    JOIN answers a ON a.question_id = q.question_id 
    WHERE test_id = :test
    ORDER BY ques_order, opt_order ASC'; 

$stmt = $db->prepare($sql);
$stmt->execute(array(':test' => $m_test_id));