【问题标题】:How to select only Filled records from database?如何从数据库中仅选择已填充的记录?
【发布时间】:2016-11-23 04:15:30
【问题描述】:

仅显示表中已填充的记录。

这是我的数据库:

CREATE TABLE `category1` (
  `parent_id` int(100) NOT NULL,
  `parent_name` varchar(100) NOT NULL,
  `cat_name` varchar(100) NOT NULL,
  `cat_status` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

将数据转储到数据库中:

INSERT INTO `category1` (`parent_id`, `parent_name`, `cat_name`, `cat_status`) VALUES
(1, 'Electronics', '', 'Active'),
(2, '', 'Laptops', 'Active'),
(3, '', 'Mobiles', 'Active'),
(4, 'Mens', '', 'Active'),
(5, '', 'Watches', 'Active');

现在我希望显示 parent_name 字段,但问题是如果我这样做 “从表中选择 parent_name” 它还显示了该字段的空记录。之所以为空,是因为一次只能填写 parent_name 或 cat_name。

【问题讨论】:

    标签: php


    【解决方案1】:

    你可以用这个query

    SELECT parent_name FROM category1 WHERE (parent_name != '' AND parent_name IS NOT NULL)
    

    IS NOT NULL 条件在SQL 中用于测试non-NULL value。如果找到非 NULL 值,则返回 TRUE,否则返回 FALSE

    【讨论】:

      【解决方案2】:

      您需要在查询中添加 where 条件:

      select parent_name from category1 where parent_name != ''
      

      您可能对不同的 parent_name 值感兴趣。在这种情况下,请在查询中使用 distinct 语句:

      select distinct parent_name from category1 where parent_name != ''
      

      【讨论】:

        【解决方案3】:

        这将保证没有空值

         SELECT parent_name FROM table WHERE parent_name != ''
        

        【讨论】:

          【解决方案4】:
          SELECT parent_name FROM category1 WHERE parent_name != ''
          

          将选择 parent_name 不为空的所有行。

          【讨论】:

            猜你喜欢
            • 2015-12-24
            • 1970-01-01
            • 1970-01-01
            • 2018-09-11
            • 2013-01-03
            • 2013-01-31
            • 1970-01-01
            • 1970-01-01
            • 2013-03-04
            相关资源
            最近更新 更多