SQL - 如果存在不适用于 Select 语句?
Posted
技术标签:
【中文标题】SQL - 如果存在不适用于 Select 语句?【英文标题】:SQL - If exists does not work with Select Statements? 【发布时间】: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)
.
***.com/questions/5528854/usage-of-mysqls-if-exists
您有两个 *** 用户?为什么???至于你想要什么,只需将IF
放在你的应用程序代码中,而不是SQL。
【参考方案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 ...
【讨论】:
以上是关于SQL - 如果存在不适用于 Select 语句?的主要内容,如果未能解决你的问题,请参考以下文章
HSQLDB - 可更新语句不适用于“SELECT TOP”或“ORDER BY”