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

Mysql Like + Wild Card срещу оператор Equals

Този израз връща редове за my_field = '13a' :

SELECT * FROM my_table WHERE my_field=13

Тъй като MySQL извършва преобразуване на тип от низ в число по време на сравнението, преобразувайки '13a' до 13 . Повече за това в тази страница с документация .

Добавянето на кавички превръща цялото число в низ, така че MySQL извършва само сравнение на низове. Очевидно '13' не може да бъде равно на '13a' .

LIKE клаузата винаги извършва сравнение на низове (освен ако някой от операндите не е NULL , в който случай резултатът е NULL ).



  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 Daemon Lock

  2. Как мога да накарам MySQL SUM заявка да връща нула вместо нула, ако няма записи?

  3. MySQL - Entity :Стойността за колона 'IsPrimaryKey' в таблица 'TableDetails' е DBNull

  4. PHP - Направете ключа на масива на моята заявка в ID

  5. Разликата между 'AND' и '&&' в SQL