从SQL数据库中选择特定的行和列

时间:2016-04-17 22:04:12

标签: mysql sql

是否可以在SQL query

中检索特定行的特定列

我们要说我从名为SQL的{​​{1}}表中选择名称为a,b的行,使用此查询文字:

my_table

如何修改此查询文本以仅选择列2,12,22,32,42而不是所有1000列?

4 个答案:

答案 0 :(得分:6)

将通配符*替换为您要检索的列名。

但请阅读有关SQL标准的文档。您不太可能在表中需要1.000列。

答案 1 :(得分:2)

尝试并阅读sql,因为它确实按照它所说的

select [column name 1, column name 2] 
from [table name] 
where [column name 3] in ('column value 1', 'column value 2')
order by [column name 3] 

请选择"列名1和#34;的值和"列名2" 从表中的行调用"表名" 这些行的值等于列值1'和'列值2'在名为"列名3"

的列中

答案 2 :(得分:1)

2个imp点
1.单个表中的1000列是针对RDBMS及其高度非标准化的表 2.行没有名称。

现在,如果您知道列的名称,请使用以下内容:

"select column_1,column_2 from my_table where primary_key_column in ('1','2');"

此处column_1,column_2是您想要的列名称 primary_key_column用于唯一地定义行和括号中需要检索的所有主键。

如果您只知道列号,请使用以下命令检索列名:

"SELECT Column_name FROM user_tab_columns where table_name = 'MY_TABLE' and Column_id in (1,2,5);"

希望这会有所帮助。

供进一步参考 http://www.w3schools.com/sql/

答案 3 :(得分:0)

是。 SQL用于从所需行中选择所需的列。除非您已经定义了名为row_names的列(这不是一项规则),否则数据行不具有row_names。在基本级别,从RDBMS检索数据是通过如下构造的SQL语句:(这是一个SELECT语句。最简单的版本具有以下子句)

  1. 选择包含感兴趣数据的表(FROM子句)。如果我们想要电话列表,我们可能会查询白页表。
  2. 标识包含感兴趣数据的行(WHERE子句)。这是通过在列值上放置条件(没有行听到者或行名称)来完成的。我们想要姓氏为" Hemingway"这里的姓氏是表中的一列,而不是行名。
  3. 选择我们要检索的数据列(SELECT子句)。我们需要名字,姓氏和电话号码。
  4. 总而言之,我们可能会:

    SELECT
        first_name,
        last_name,
        phone_number
    FROM
        WhitePages
    WHERE
        (last_name = "Hemingway")
    

    在您的情况下,SELECT语句将类似于:

    SELECT
        <name of column 2>,
        <name of column 12>,
        <name of column 22>,
        <name of column 32>,
        <name of column 42>
    FROM
        my_table
    WHERE
        (<some_column_name> IN ('a', 'b'))
    AND (<some_other_column_name> = <some_number>)
    AND (<yet_another_column_name> = "<some_text>")
    ORDER BY
        <a_selected_column>,
        <another_selected_column>
    

    如果您定期使用数据库,我建议您多学习一下SQL,因为您很难在SO或其他网站上查询问题位点。

    虽然你提到的1000列可能是夸张的,但SQL表通常不会有数百列。考虑让您的表和SQL由经验丰富的团队成员设计。