mysql查询中的语法错误

时间:2011-04-27 08:20:13

标签: mysql

该查询有什么问题?

SELECT
    null,
    DISTINCT(email),  
    2,
    SUBSTRING(MD5(RAND()) FROM 1 FOR 32) 
    from users where sex = 'male'
  

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'DISTINCT(电子邮件)附近使用正确的语法,

1 个答案:

答案 0 :(得分:0)

使用distinct的意图是声明应该删除重复的行。选择

后立即使用Distinct
SELECT DISTINCT
    null,
    email,  
    2,
    SUBSTRING(MD5(RAND()) FROM 1 FOR 32) 
FROM users 
WHERE sex = 'male'

我猜在前一个查询中删除重复行会失败,因为它包含一个随机列值。但是,可以在子查询中选择不同的电子邮件地址,然后添加其余列:

SELECT DISTINCT
    null,
    email,  
    2,
    SUBSTRING(MD5(RAND()) FROM 1 FOR 32) 
 FROM (
       SELECT DISTINCT email
       FROM users
       WHERE sex = 'male'
 ) males

请参阅MySQL select syntax