viernes, 18 de abril de 2025

MySQL ANY ALL IN

mysql> select  4 >any(select 33  as V UNION ALL select 11) as R;

+---+

| R |

+---+

| 0 |

+---+

1 row in set (0.00 sec)


mysql> select  34 >any(select 33  as V UNION ALL select 11) as R;

+---+

| R |

+---+

| 1 |

+---+

1 row in set (0.01 sec)

-----------
ALL

mysql> select  34 >ALL(select 33  as V UNION ALL select 11) as R;
+---+
| R |
+---+
| 1 |
+---+
1 row in set (0.00 sec)


https://dev.mysql.com/doc/refman/8.4/en/any-in-some-subqueries.html

Syntax:

operand comparison_operator ANY (subquery)
operand IN (subquery)
operand comparison_operator SOME (subquery)

Where comparison_operator is one of these operators:

=  >  <  >=  <=  <>  !=

MySQL exists

 select  exists  (select  'A' where 5>10) as R;

+---+

| R |

+---+

| 0 |

+---+


Because     the evaluated query return   empty set, if return any value doesn't matter the value   it will return  1, doesn't matter if is null or 0.

select  'A' where 5>10;
Empty set (0.00 sec)


------------------------    exists   here will return 1

select  exists  (select  NULL) as R;
+------+
| R    |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

-


 select  exists  (select  0) as R;
+---+
| R |
+---+
| 1 |
+---+


select 'Ambiorix' where exists(select 1);
+----------+
| Ambiorix |
+----------+
| Ambiorix |
+----------+

MySQL IF

mysql> select if(10>8,'A','B') as result;

+--------+

| result |

+--------+

| A      |

+--------+


--------------
mysql> select if(10>15,'A','B') as result;
+--------+
| result |
+--------+
| B      |
+--------+


MySQL case

mysql> set @i=4;

 mysql> select case @i

    -> when @i>3 then'A'

    -> else 'B'

    -> end as t;



------------
mysql> select case
    -> when 5>4 then  'A'
    -> when 5<6 then 'B'
    -> else 'C'
    -> end as t;
+---+