【问题标题】:set a default value if the mysql selection query return empty rows如果 mysql 选择查询返回空行,则设置默认值
【发布时间】:2017-06-05 23:36:16
【问题描述】:

我的 php 文件中有一个选择查询作为下一个 >>

$sql = 'SELECT * 
    FROM notes
    WHERE notes.code_apogee='.$CA.'';

返回一些空行,我应该在其中设置默认值

我使用 IFNULL 如下:

SELECT IFNULL( (SELECT *
    FROM notes
    WHERE notes.code_apogee='.$CA') ,'en attend');

但出现错误

 MySQL a répondu: Documentation
#1241 - Operand should contain 1 column(s)

有什么帮助吗?请

【问题讨论】:

  • 如何定义“空行”?特定列,还是特定行中的所有列?你能举一个你的数据集的例子吗?
  • 在笔记表中我有一组列,其中 code_apogee 是其中之一,在这种情况下我将其用作条件,一些行返回一个空白字段,所以想输入一个默认值?
  • 我认为(不确定):函数 IFNULL 仅将一个列/值作为参数。你给它几个(与表格注释中的所有列一样多)

标签: php mysql


【解决方案1】:

IFNULL() 不会将子选择(在您的情况下是所有列)作为参数,而只是一个(加上 else 值)。
所以你的查询应该是这样的:

SELECT id, 
    IFNULL(notes.title, 'en attend') as title, 
    IFNULL(notes.body, 'en attend') as body 
FROM notes
WHERE notes.code_apogee='.$CA'

(我刚刚发明了 notes.title 和 notes.body,您需要将其替换为实际的列名)

您当然可以让数据库只返回 NULL 并在显示结果时添加“参加”:

echo !is_null($row['title']) ? $row['title'] : 'en attend';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-01
    • 2018-12-12
    • 2011-04-22
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多