Mysql
 sql >> база данни >  >> RDS >> Mysql

какво е значението на изберете ''-''

Вие сте минус - от един празен низ '' към друг:

Вижте следното:

mysql> select '';
+--+
|  |
+--+
|  |
+--+
1 row in set (0.00 sec)  

mysql> select '3'-'2';
+---------+
| '3'-'2' |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)

Но предупреждение, ако не е числовен низ :

mysql> select 'a'-'b';
+---------+
| 'a'-'b' |
+---------+
|       0 |
+---------+
1 row in set, 2 warnings (0.00 sec)    

Две предупреждения:

mysql> SHOW WARNINGS LIMIT 2
    -> ;
+---------+------+---------------------------------------+
| Level   | Code | Message                               |
+---------+------+---------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'a' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'b' |
+---------+------+---------------------------------------+
2 rows in set (0.00 sec)  

Защо няма предупреждение за empty низ?

Където, тъй като няма предупреждение за празен низ, защото той (издаде нещо) 0 вижте по-долу:

mysql> SELECT 0 = '';
+--------+
| 0 = '' |
+--------+
|      1 |
+--------+
1 row in set (0.00 sec)   

следователно като направите ''-'' правите 0 - 0

mysql> SELECT '' - '';
+---------+
| '' - '' |
+---------+
|       0 |
+---------+
1 row in set (0.00 sec)  

За да бъда по-ясен, добавям следния пример (Чувствам, че ще ви бъда полезен ):
Как се случва преобразуването:

mysql> SELECT '0' = 0
    -> ;
+---------+
| '0' = 0 |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)  

забележете преобразуването му:

mysql> SELECT '' = '0'
    -> ;
+----------+
| '' = '0' |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)  

'' преобразувано в 0 , '0' преобразувано в 0 но '' не е равно на '0'

mysql> SELECT '1' = 1
    -> ;
+---------+
| '1' = 1 |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)

mysql> SELECT '' = 1
    -> ;
+--------+
| '' = 1 |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec) 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да компенсирате HTML таблица с PHP, за да извадите стойността на клетка на 1-ви ред от стойността на клетка 2-ри ред на различни колони

  2. Как мога да извлека екземпляр на последния добавен елемент

  3. Трябва ли да освободя mysql резултата, след като го съхраня?

  4. Как да получите само таблици, а не изгледи, като използвате SHOW TABLES?

  5. Какъв е добър начин за денормализиране на mysql база данни?