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

Какво се случва с низа за съвпадение на цяло число в MySQL?

Низът винаги се преобразува в 0 в сравнение с числов (разбира се низ, съдържащ число + низ, се преобразува числово. но това не е добра практика)

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

mysql> show warnings;
+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Yes' |
+---------+------+-----------------------------------------+

Ако искате да съхранявате двоична стойност (Да/Не или Вярно/Невярно) или малка стойност, ENUM е добър избор. Заема малко дисково пространство и може да използва смислен низ.

mysql> CREATE TABLE enum_test(a ENUM('Yes', 'No'));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into enum_test values('Yes'), ('No'), ('Invalid');
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 1

mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'a' at row 3 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)

mysql> select * from enum_test where a = 'Yes';
+------+
| a    |
+------+
| Yes  |
+------+
1 row in set (0.00 sec)

mysql> select * from enum_test where a = 'No';
+------+
| a    |
+------+
| No   |
+------+
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. Извличане на данни от MySQL на партиди чрез Python

  2. Използване на Mysql в командния ред в osx - командата не е намерена?

  3. Ubuntu - 12.04 - MySql няма да стартира с помощта на услугата mysql start

  4. Как да импортирате база данни с помощта на командния ред

  5. Хибернация, изпращане на излишни заявки към базата данни