【问题标题】:SQL - If exists does not work with Select Statements?SQL - 如果存在不适用于 Select 语句?
【发布时间】:2021-04-16 15:17:01
【问题描述】:

当我添加IF EXISTS 以检查以下查询中是否存在任何记录时,我没有得到任何输出。在删除 IF EXISTS 时,查询工作正常。我不确定是什么问题

I am only trying to check if there are any records present, if yes display them

查询

async getData() {
        try {
            const data = await this._conn.query(`

IF EXISTS(select first_name.value_name,quiz_table.answer, windows,player,first_name.value_id,country_place,current_name, pet_name, marker, relations
from schema_name.plugin,schema_name.quiz_table,schema_name.first_name, schema_name.value_version, schema_name.relationss
where (plugin.answer= quiz_table.answer
and quiz_table.windows=first_name.value_id
and marker is not null
and schema_name.value_version.value_id= schema_name.first_name.value_id
and schema_name.value_version.caste= schema_name.first_name.caste
and schema_name.value_version.value_name= schema_name.first_name.value_name
and schema_name.value_version.version_number= schema_name.first_name.version_number
and schema_name.relationss.value_id= schema_name.first_name.value_id
and schema_name.relationss.caste= schema_name.first_name.caste
and schema_name.relationss.value_name= schema_name.first_name.value_name))
limit 1;)
}

【问题讨论】:

  • IF 语句只能用于复合语句(过程、触发器等)。
  • 好的,我还能在这里使用什么?我有 2 个选择语句。我正在寻找 if - else 类型的逻辑,如果数据存在,则从任何 1 选择中显示
  • 我只是想检查是否有任何记录存在 SELECT EXISTS (subquery).
  • 您有两个 StackOverflow 用户?为什么???至于你想要什么,只需将IF 放在你的应用程序代码中,而不是SQL。

标签: mysql sql database exists


【解决方案1】:

只需使用查询来选择数据,所以开始

SELECT first_name.value_name, quiz_table.answer, ...

没有IF EXISTS,并且按照cmets 中@MatBailie 的建议,在您的应用程序代码中使用if-else 语句,检查查询返回的结果集的内容。 然后显示数据(如果存在)。

例如,在 PHP 中:

$query = "select first_name.value_name,quiz_table.answer, windows,player,first_name.value_id,country_place,current_name, pet_name, marker, relations
        from schema_name.plugin,schema_name.quiz_table,schema_name.first_name, schema_name.value_version, schema_name.relationss
        where plugin.answer= quiz_table.answer
        and quiz_table.windows=first_name.value_id
        and marker is not null
        and schema_name.value_version.value_id= schema_name.first_name.value_id
        and schema_name.value_version.caste= schema_name.first_name.caste
        and schema_name.value_version.value_name= schema_name.first_name.value_name
        and schema_name.value_version.version_number= schema_name.first_name.version_number
        and schema_name.relationss.value_id= schema_name.first_name.value_id
        and schema_name.relationss.caste= schema_name.first_name.caste
        and schema_name.relationss.value_name= schema_name.first_name.value_name
";
$resultset = mysqli_query($conn, $query);

// error checking code ...

if ($resultset->num_rows > 0) {  // here is where you check the IF EXISTS
    // display data ...
}

【讨论】:

    猜你喜欢
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    相关资源
    最近更新 更多