Php 如何正确使用distinct

Php 如何正确使用distinct,php,mysql,sql,pdo,distinct,Php,Mysql,Sql,Pdo,Distinct,我想创建一个页面来索引我所有的标题 我想打印每个标题的第一个字 例如,我有这样的标题 A atitle1 atitle2 B btitle3 V vtitle4 阿蒂特尔1 阿蒂特尔2 btitle3 vtitle4 所以,我想创建这样的索引 A atitle1 atitle2 B btitle3 V vtitle4 这是我想要的 SELECT * FROM master_post, category_relation, category WHERE ca

我想创建一个页面来索引我所有的标题

我想打印每个标题的第一个字

例如,我有这样的标题

A
atitle1
atitle2

B
btitle3

V
vtitle4
  • 阿蒂特尔1
  • 阿蒂特尔2
  • btitle3
  • vtitle4
  • 所以,我想创建这样的索引

    A
    atitle1
    atitle2
    
    B
    btitle3
    
    V
    vtitle4
    
    这是我想要的

    SELECT * FROM master_post, 
          category_relation, 
          category WHERE category_relation.id_mp = master_post.id_mp 
          AND category_relation.id_c = category.id_c
          AND category.slug_c = 'dorama' AND 1 ORDER BY master_post.judul_mp ASC
    
    我不确定,但我认为它使用的是
    Distinct
    。这里是我创建的
    Distinct

    SELECT DISTINCT LEFT(judul_mp, 1) AS firstletter FROM master_post WHERE judul_mp = :judul_mp
    
    但是我不知道如何加入我的
    独特的
    代码,我尝试了一下,但出现了错误。

    您可以这样做:

    SELECT mp.judul_mp as str
    FROM master_post mp JOIN 
         category_relation cr
         ON mp.id_mp = cr.id_mp JOIN
         category c
         ON cr.id_c = categcry.id_c
    WHERE c.slug_c = 'dorama'
    UNION ALL
    SELECT DISTINCT LEFT(mp.judul_mp, 1)
    FROM master_post mp JOIN 
         category_relation cr
         ON mp.id_mp = cr.id_mp JOIN
         category c
         ON cr.id_c = categcry.id_c
    WHERE c.slug_c = 'dorama'
    ORDER BY str;
    

    注意使用正确、明确、标准的
    JOIN
    语法。不要在
    FROM
    子句中使用逗号。

    您应该在应用程序代码中处理与显示相关的事情。不,我不认为这是
    DISTINCT
    的目的。Madhur idea已经是最简单的了。您的第一个查询返回许多列。第二个返回一列。您的示例结果有一列。我不知道你到底想做什么。但是如果我想再添加一个
    ,该怎么办?我想添加
    其中mp.judul\u mp=:charac
    @Jazuly。如果我想选择多列,我会尝试添加
    选择mp.judul\u mp作为str,mp.link\u mp作为lnkstr,因为这是我想添加链接的索引,我会在名为
    link\u mp
    @Jazuly的
    master\u post
    表中插入链接。这将是一个不同的问题,应该作为一个新问题提出。