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

Как да избегнем имплицитно преобразуване на MySQL (Скъсена неправилна стойност DOUBLE)

По-скоро трябва да опитате да го кастнете изрично чрез CAST или CONVERT функция като по-долу и не разчитайте на имплицитно кастинг.

SELECT * FROM test WHERE sample_col = cast('foo' as int);

(OR)

SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';

Освен това няма смисъл да се сравнява INT тип колона с string стойност и AFAIK, няма такава настройка, която да спре имплицитното кастинг. ако наистина искате да доведете до грешка, вместо да я преобразувате в 0, тогава я преобразувайте изрично; в който случай ще излезе грешка.

Вижте Преобразуване на тип при оценка на израз За повече информация.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не мога да инсталирам mysqlclient

  2. MYSQL - Избиране на данни от втория ред в голяма таблица

  3. получаване на синтактична грешка при създаване на функция

  4. Как да създадете/поддържате ID поле в Sequel Pro чрез Ruby и mysql2

  5. Как да използвате тригер в MySql, за да направите външен ключ