MySQL сравнивая силу BINARY

0

У меня две таблицы. В одном я столкнулся как INT, а в другом у меня есть строка типа VARCHAR, где я ожидаю идентификатор пользователя или уникальный идентификатор для квеста с буквами... Я хочу сравнить, если INT = VARCHAR в запросе mysql. Я использую:

BINARY int_row = BINARY varchar_row

это нормально?

Теги:

1 ответ

0
Лучший ответ

Пока вы сравниваете только цифры, это не имеет значения. В любом случае будет неявное преобразование, чтобы можно было сравнивать поля varchar и int.

Единственная проблема, о которой я могу думать, это то, что поле varchar может содержать такие значения:

1ABCDEFGHIJK

у вас могут возникнуть проблемы, потому что преобразование этого varchar в число приведет к 1!

Чтобы быть уверенным, я хотел бы использовать

BINARY CAST(int_row AS CHAR) = BINARY varchar_row

но это может быть слишком параноидально - поправьте меня, если я ошибаюсь.

  • 0
    да, вы правы .... это именно моя проблема. Если строка, начинающаяся с числа, автоматически преобразуется в начальный номер, поэтому я использую BINARY для сравнения, и это прекрасно работает для меня ... но я хочу знать, все ли в порядке с кодом или просто везет ....

Ещё вопросы

Сообщество Overcoder
Наверх
Меню