Mysql: Как запросить столбец, тип которого является битом?

Вы передаете старую sum в cvtdigit, вы должны добавить к ней, а не использовать неинициализированную локальную переменную.

Вы получаете числовое значение цифры, вычитая из нее '0'.

int cvtdigit(int sum, char c)
{
    int d = c - '0';
    sum += d;
    return sum;        
}
28
задан Luixv 8 May 2009 в 12:34
поделиться

4 ответа

SELECT * FROM table WHERE active = (1)
39
ответ дан 28 November 2019 в 02:35
поделиться

Согласно этой странице , BIT является синонимом TINYINT (1) для версий до 5.0.3 .

Вы пробовали эти ?

SELECT * from table where active = (1)
SELECT * from table where active = 'true'
SELECT * from table where active = b'1'

Эта запись в блоге предлагает вообще избегать типа данных BIT.

18
ответ дан 28 November 2019 в 02:35
поделиться

Вы пытались привести его к целому числу для сравнения

SELECT * from table where cast(active as unsigned) = 1

Я использую MS SQL большую часть времени, так что простите, если это не работает, поскольку я не могу его протестировать.

7
ответ дан 28 November 2019 в 02:35
поделиться

Чтобы указать битовые значения, можно использовать обозначение b'value.

7
ответ дан 28 November 2019 в 02:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: