Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 使用;及;带“的声明;选择DISTINCT";_Mysql - Fatal编程技术网

Mysql 使用;及;带“的声明;选择DISTINCT";

Mysql 使用;及;带“的声明;选择DISTINCT";,mysql,Mysql,我正在尝试制作一个搜索引擎,我想要的是为两列选择不同的行 $sorgu = mysql_query("SELECT DISTINCT name AND surname FROM users"); while($cek = mysql_fetch_array($sorgu)) { $display = $cek['name']." ".$cek['surname']; if(strcmp($written,$display) == 0)

我正在尝试制作一个搜索引擎,我想要的是为两列选择不同的行

$sorgu = mysql_query("SELECT DISTINCT name AND surname FROM users");

    while($cek = mysql_fetch_array($sorgu))
    {
        $display = $cek['name']." ".$cek['surname'];

        if(strcmp($written,$display) == 0)
        {
            echo $display;
        }       
    }
我得到了两个未定义的索引错误,名字和姓氏。当我删除这里的“and”语句时,代码工作正常。我如何在这里使用“AND”,意思是同时比较两列?
感谢

对于多个字段,请使用GROUP BY而不是DISTINCT;将其更改为DISTINCT id

改变

$sorgu = mysql_query("SELECT DISTINCT name AND surname FROM users");


如果您试图提取一个不同的名称和姓氏,它应该是

SELECT DISTINCT Name, Surname 
FROM Users 
按姓名分组

这将为您提供如下结果:

  Name | Surname
------------------
  John | Smith
  John | Doe
  Doug | Smith
  Name | Surname
------------------
  John | Smith
  John | Doe
  John | Smith
它防止出现以下结果:

  Name | Surname
------------------
  John | Smith
  John | Doe
  Doug | Smith
  Name | Surname
------------------
  John | Smith
  John | Doe
  John | Smith

在大多数数据库中,
独特的
(或
独特的
)相当于一个
分组。。。按
排序,而按分组本身是无序的不同的

这:

应等同于:

这类似于:


所有这些都应该为您提供一组独特的记录,但最后一个应该产生最快的结果

此外,除了在代码中进行连接,您还可以在数据库中进行连接:


这是什么意思?名字和姓氏应该是不同的吗?或者名称+姓氏组合应该是唯一的?或者是其他原因?对于多个字段,请使用GROUP BY而不是DISTINCT;将其更改为DISTINCT id;名称+姓氏在SQL
中应该是唯一的,
仅用于
WHERE
(或等效子句)中的a。您也可以从用户中选择不同的concat(名称,,,姓氏),而不是在看似PHP+1中。我相信
DISTINCT
在使用时适用于
SELECT
语句中的所有内容。这是正确的,如果您想要
DISTINCT Name
DISTINCT姓氏
,则需要使用子查询来完成此操作。如果已应用DISTINCT,则不需要使用GROUP BY
SELECT    name, surname 
FROM      users
GROUP BY  name, surname
ORDER BY  name, surname
SELECT    name, surname 
FROM      users
GROUP BY  name, surname
SELECT DISTINCT concat(name,' ',surname)
FROM users