#mysql
#mysql
Вопрос:
У меня есть таблица с более чем 5 тыс. записей. Поле payment_mode имеет 3 типа — A, B, C. Когда я запрашиваю это: ВЫБЕРИТЕ DISTINCT payment_mode из MY_TABLE, это дает следующий результат:
payment_mode
A
B
C
A
B
C
Shouldn't it be just showing:
A
B
C
Это приводит к неправильному отчету на передней панели приложения.
Комментарии:
1. Проверьте наличие невидимых символов.
2. когда я запускаю это, чтобы найти разницу: ВЫБЕРИТЕ [YourColumn], ПРИВЕДИТЕ ([YourColumn] как varbinary(max)) ИЗ [YourTable], это выдает синтаксическую ошибку
3. Я не думаю, что DISTINCT — это то, что вы ищете. Попробуйте ВЫБРАТЬ payment_mode ИЗ ГРУППЫ my_table ПО payment_mode
4. Если group by дает несколько результатов для A, у вас могут быть пробелы вокруг него. используйте TRIM()
5. Какой бит нет varbinary в mysql был вам неясен, см. Руководство dev.mysql.com/doc/refman/8.0/en/cast-functions.html для допустимых типов приведения.
Ответ №1:
ВЫБЕРИТЕ DISTINCT(payment_mode) из MY_TABLE