我的第一个SQL查询 - OrderBy错误

时间:2011-04-23 14:22:44

标签: mysql

我正在使用MySQL查询从两个表中获取信息,然后按一个字段对它们进行排序。关于最后一行的东西不起作用,加载内容的AJAX函数返回错误。

$list = mysql_query("SELECT    id, 
           user_email, 
           meta_lastname.meta_value lastname,  
           meta_firstname.meta_value firstname 
 FROM      wp_users 
 LEFT JOIN wp_usermeta meta_lastname 
 ON        meta_lastname.user_id = wp_users.id 
 LEFT JOIN wp_usermeta meta_firstname 
 ON        meta_firstname.user_id = wp_users.id 
 WHERE     meta_lastname.meta_key = 'last_name' 
 AND       meta_firstname.meta_key = 'first_name'
    WHERE user_email LIKE '%$searchpattern%' 
    ORDER BY lastname;");

关于最后一点的事情是不对的,并且正在返回错误。

WHERE user_email LIKE '%$searchpattern%' 
        ORDER BY lastname;");

关于什么出错的想法?​​

非凡

4 个答案:

答案 0 :(得分:5)

您的查询中有两个WHERE

 WHERE     meta_lastname.meta_key = 'last_name' 
 AND       meta_firstname.meta_key = 'first_name'
    WHERE user_email LIKE '%$searchpattern%' 

您需要使用AND之类的逻辑运算符:

 WHERE     meta_lastname.meta_key = 'last_name' 
 AND       meta_firstname.meta_key = 'first_name'
    AND user_email LIKE '%$searchpattern%' 

此外,您可能需要使用原始名称meta_lastname.meta_value订购,而不是别名lastname

答案 1 :(得分:1)

按完整列名称排序,而不是别名。

ORDER BY meta_lastname.meta_value

答案 2 :(得分:1)

我猜这是分号。尝试ORDER BY lastname");否则请在没有订单声明的情况下尝试。

答案 3 :(得分:1)

您还需要将第二个“WHERE”更改为“AND”。