mysql - 一个 SQL 查询中的 IF、EXISTS 和 SELECT

标签 mysql sql

我在mysql中有下表

 BLUE      | RED         | WOLOLO (UNIXTIMESTAMP)
 2 ---------10-----------1324123...
 3 ---------34-----------13241323...
 8 ---------10-----------NULL
 6 ---------10-----------NULL

我想要做的是验证是否有任何行 WOLOLO 与 null 不同 并且红色等于10。如果没有,则插入新行,否则选择 蓝色从它。像这样的东西(不起作用)

$query = "IF(EXISTS (SELECT BLUE FROM table WHERE WOLOLO='x' AND RED='10'), SELECT BLUE FROM table WHERE WOLOLO='x' AND RED='10', INSERT INTO table ..."

最佳答案

将其分为几个步骤:

    DECLARE var0 INT;

    SELECT COUNT(*) INTO var0 FROM table 
    WHERE WOLOLO IS NOT NULL and RED = '10'; 


    IF var0>0 THEN
     SELECT BLUE FROM table 
    END IF;

    IF var0=0 THEN
     INSERT INTO table ....
    END IF;    

关于mysql - 一个 SQL 查询中的 IF、EXISTS 和 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23205866/

相关文章:

mysql - CAKEPHP3 hasMany 与多个值关联

mysql - 在第二个基于多列连接表

sql - SQL如果select语句不返回任何行,则执行替代的select语句

java - hibernate 和 not null 的一对一映射

php - 无需重新加载页面即可更改的动态计数器

c# - 导入 MSSQL 数据库时出现错误 "database compatibility level is not supported."

mysql 带有 group by 和表别名的完全外连接

sql - 使用多个表生成将行转换为列的报告

php - 如何优化mysql查询性能

SQL 转置和连接