У меня две таблицы. В одном я столкнулся как INT, а в другом у меня есть строка типа VARCHAR, где я ожидаю идентификатор пользователя или уникальный идентификатор для квеста с буквами... Я хочу сравнить, если INT = VARCHAR в запросе mysql. Я использую:
BINARY int_row = BINARY varchar_row
это нормально?
Пока вы сравниваете только цифры, это не имеет значения. В любом случае будет неявное преобразование, чтобы можно было сравнивать поля varchar
и int
.
Единственная проблема, о которой я могу думать, это то, что поле varchar может содержать такие значения:
1ABCDEFGHIJK
у вас могут возникнуть проблемы, потому что преобразование этого varchar в число приведет к 1
!
Чтобы быть уверенным, я хотел бы использовать
BINARY CAST(int_row AS CHAR) = BINARY varchar_row
но это может быть слишком параноидально - поправьте меня, если я ошибаюсь.