【问题标题】:MySQL Select Specific ColumnMySQL选择特定列
【发布时间】:2011-12-14 07:37:09
【问题描述】:

我是 PHP 新手,我想知道如何从一行中选择特定列。例如,如果我想显示 Joe Bugly 的名字,其中 ID、名字、姓氏和电子邮件都是列。

【问题讨论】:

  • 我们可以看看你的一些代码吗?不确定是 sql 问题还是您想知道 php 如何与 mysql 一起工作。
  • $query = mysql_query("SELECT * FROM notes"); while ($getrows = mysql_fetch_assoc($query)) { $db_id = $getrows['body']; } 回声 $db_id;这是我最初拥有的。它有效,我只是不确定是否有更好的方法。抱歉耽搁了,我没有看到这个。另外你如何让这个文本框正确打印你的代码格式?

标签: php mysql


【解决方案1】:

假设您不希望使用select * from ... (a) 返回的所有列,您可以简单地明确列出所需的列:

select fname, lname from ...

例如,假设您知道您的用户 ID 是 jbug01,并且您只需要相应的电子邮件地址:

select email
from   users
where  userid = 'jbug01'

就在 PHP 中执行此操作而言,以下代码 sn-p 可能会有所帮助:

<?php
    $conn = mysql_connect ("localhost", "paxdiablo", "supersekritsauce");
    if (!$conn) {
        die ('Could not connect: ' . mysql_error());
    }
    mysql_select_db ("my_database", $conn);
    $result = mysql_query ("select email from users where userid = 'jbug01'");
    while ($row = mysql_fetch_array ($result)) {
        echo $row['email'] . "<br />";
    }
    mysql_close ($conn);
?>

(a) 有一些宝贵的 案例表明选择* 是有意义的(除了需要 获取所有列的工具作为数据库查看器)。

您通常应该更喜欢明确地选择列。与盲目选择所有内容相比,这可以让您在流程中更早地检测到架构更改问题。

这也会导致传输的信息减少,这对于小型数据库或所有东西都在同一个盒子上运行的系统可能并不重要,但它影响系统的可扩展性,无论是在数据方面网络的规模和分布。

【讨论】:

    【解决方案2】:

    试试这个:

    $conn = mysql_connect("localhost","root");
    mysql_select_db("DbName",$conn);
    $query = "Select u.FirstName from Users u";
    $results =  mysql_query($query);
    while($row = mysql_fetch_array($results)){
        echo $row['FirstName'];
    }
    

    【讨论】:

      【解决方案3】:

      试试这个:

      $db = new PDO('mysql:host=hostname;dbname=dbname', 'username', 'password');
      
      $stmt = $db->query('select id from games where ...');
      while ($id = $stmt->fetchColumn(0)) {
          echo $id;
      }
      

      如果有帮助,请标记答案。

      Reference

      【讨论】:

        【解决方案4】:

        这实际上是一个 SQL 问题;)

        取决于您如何选择 Joe Bugly 的记录。如果您是根据 ID 进行选择,那么

        SELECT fname
        FROM your_table_name
        WHERE ID = <ID of Joe Bugly>
        

        这样你选择了一条记录,并通过在 SELECT 子句中应用 fname,你正在过滤你想要的列数

        【讨论】:

          猜你喜欢
          • 2011-02-27
          • 2017-08-31
          • 1970-01-01
          • 2020-11-01
          • 1970-01-01
          • 2013-04-05
          • 1970-01-01
          • 2019-03-22
          • 2014-11-28
          相关资源
          最近更新 更多