Если значение m.property
оценивается как true при интерпретации как логическое выражение, строка выбирается.
См. http://www.sqlite.org/lang_select.html#whereclause
Там написано
- Если указано предложение WHERE, выражение WHERE оценивается для каждой строки во входных данных как логическое выражение. Все строки, для которых выражение предложения WHERE оценивается как ложное, исключаются из набора данных перед продолжением.
Для логического выражения это говорит
- Чтобы преобразовать результаты выражения SQL в логическое значение, SQLite сначала приводит результат к числовому значению так же, как выражение CAST. NULL или нулевое значение (целое значение 0 или реальное значение 0.0) считается ложным. Все остальные значения считаются верными. Например, значения NULL, 0.0, 0, «english» и «0» считаются ложными. Значения 1, 1.0, 0.1, -0.1 и '1english' считаются верными.
Таким образом, он должен оценить m.property
и привести его к логическому значению, и сохранить строки, для которых это верно.