DBIx::Class
DBIx :: Class :: InflateColumn :: Boolean:を使用してブール値を処理します
このコンポーネントをロードし、列をブール値として宣言します。
package Table;
__PACKAGE__->load_components(qw/InflateColumn::Boolean Core/);
__PACKAGE__->table('table');
__PACKAGE__->true_is('Y');
__PACKAGE__->add_columns(
foo => {
data_type => 'varchar',
is_boolean => 1,
},
bar => {
data_type => 'varchar',
is_boolean => 1,
true_is => qr/^(?:yes|ja|oui|si)$/i,
},
baz => {
data_type => 'int',
is_boolean => 1,
false_is => ['0', '-1'],
},
);
次に、指定した列をブール値として扱うことができます。
print 'table.foo is ', $table->foo ? 'true' : 'false', "\n";
print 'table.bar is ', $table->bar ? 'true' : 'false', "\n";
ブールオブジェクトは、実際のフィールド値に文字列化されます。
print $table->foo; # prints "Y" if it is true
UPDフィールドがtrueである行を選択する方法は、値を使用してフィールドを検索する
ためにDBIx::Class
使用するため、単項演算子を参照する必要があります。SQL::Abstract
TRUE
bool
my %where = (
-bool => 'is_user',
-not_bool => 'is_enabled',
);
あなたに与えるだろう:
WHERE is_user AND NOT is_enabled