【问题标题】:Select from different database rows从不同的数据库行中选择
【发布时间】:2018-02-03 22:25:24
【问题描述】:

标题可能不适合这篇文章,对此我深表歉意! 从数据库中选择结果时出现问题。我在名为“test1”、“test2”和“test3”的表中有 3 行,其值为真或假。 如何选择值为 1 的所有结果?我不想像这样组合它们:

WHERE test1 = 1 AND test2 = 1 AND test3 = 1.

我想得到值为 1 的所有结果。

【问题讨论】:

  • 请显示表结构...
  • 你是指列还是行?
  • 少数术语可能需要更正。我想你可能在谈论数据库列而不是行。尽管不同的数据库管理应用程序以不同的方式显示单个记录,但在正确的数据库术语中,它们被称为列。这意味着,姓名、年龄、出生日期将是列而不是行。我的理解正确吗?
  • 数据库中的行没有名称,因此这些行被称为“test1”、“test2”和“test3”的可能性很小。

标签: php mysql select


【解决方案1】:

嘿,不管怎样,你都会有列名,即属性名,所以使用 .forget 每一行

                select * from table_name WHERE column_name=1.

【讨论】:

    【解决方案2】:

    如果您是指列,那么我认为按照您的方式进行操作没有任何问题。

    SELECT * 
    FROM tablename 
    WHERE test1 = 1 AND test2 = 1 AND test3 = 1
    

    更新 #1

    CREATE PROCEDURE nameofprocedure(
       IN vartest1 INT,
       IN vartest2 INT,
       IN vartest3 INT
    )
    BEGIN
       SELECT * 
       FROM tablename 
       WHERE test1 = vartest1 AND test2 = vartest1 AND test3 = vartest1
    
    END;
    

    更新 #2

    然后调用程序使用;

    CALL nameofprocedure(1, 0, 1); or
    CALL nameofprocedure(1, 1, 1); //Mix what ever you like
    

    【讨论】:

    • 但是假设我还想要具有以下值的结果:test1 = 1, test2 = 0 test3 = 1?
    • 从你所说的我认为你正在寻找的是一个存储过程。其中 test1, test2, test3 都是变量,可以包含任何值。
    猜你喜欢
    • 1970-01-01
    • 2012-09-24
    • 2015-09-09
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2014-06-17
    相关资源
    最近更新 更多